0

我有一个选择语句(工作

 Select * FROM 
    (SELECT id, type, color, product,  
    SUM(Quantity) AS TotalQuantity, 
    MAX(Date) AS LatestDate 
    FROM inventory 
    GROUP BY id, color, type) 
    AS alias 
    WHERE TotalQuantity > 0

我正在尝试向 Max(Date) 添加 WHERE 子句,但我没有任何运气:

我想我会把它改成:MAX(Date) AS LatestDate WHERE stock = 1但这不起作用。

不工作:

 Select * FROM 
    (SELECT id, type, color, product,  
    SUM(Quantity) AS TotalQuantity, 
/* Problem Here */ MAX(Date) AS LatestDate WHERE stock = 1
    FROM inventory 
    GROUP BY id, color, type) 
    AS alias 
    WHERE TotalQuantity > 0
4

2 回答 2

2
MAX(IF(stock = 1, Date, NULL)) AS LatestDate

它将找到最大日期stock = 1或者null如果没有这样的行

于 2012-07-03T02:58:36.877 回答
1

使用WHERESub Select 语句中的子句!

对于您的答案,请使用此 SQL:

Select * FROM 
    (SELECT id, type, color, product,  
    SUM(Quantity) AS TotalQuantity, 
    MAX(Date) AS LatestDate 
    FROM inventory 
    GROUP BY id, color, type
    WHERE TotalQuantity > 0) 
    AS alias

使用WHERESub Select 语句中的子句!

于 2012-07-03T02:44:49.450 回答