私はテーブルを持っています
ID | product | cuid | file | created | start_date | cancelled | brid | price
123| prod3 | 1234 | filename | 2012-09-19 | 2012-09-19 | 2012-09-19 | broker | 20
124| prod1 | 1234 | filename | 2012-09-19 | 2012-09-19 | 0000-00-00 | broker | 10
125| prod1 | 1234 | filename | 2012-09-19 | 2012-09-19 | 0000-00-00 | broker | 10
126| prod3 | 1234 | filename | 2012-09-19 | 2012-09-19 | 0000-00-00 | broker | 20
created、start_date、および cancel はすべて DateTime 列です。
以下を使用して、各製品の数、各製品の合計コスト、およびすべての製品の合計価格を計算するクエリを実行しています。
SELECT
count(product) as amount,
product,
sum(price) AS price
FROM `products`
WHERE
brid = 'broker'
AND
cancelled is null
GROUP BY product
WITH ROLLUP
これは私に与えます
amount | product | price
2 | PROD1 | 20
2 | PROD3 | 40
4 | NULL | 60
PROD3 製品の 1 つがキャンセルされた列に日付があるため、結果は次のようになります。
1 | PROD3 | 20
「cancelled is null」を追加および削除しても、結果に違いはないようです。「cancelled = "0000-00-00 00:00:00"」も試しましたが、結果には影響しませんでした...
これをキャンセルされていない製品のみに制限する方法はありますか?
助けてください!