0

私はselect文を持っています(作業中

 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 に答える