2つのテーブルがあると、[Purchase]テーブルから上位3つの値を生成します。 追加の基準は、[Crocs]がレコードの上位3桁に含まれている必要があります。MySQLに注文がある特定の行が含まれています
私は以下のSQLを持っていますが、私が望むように結果を生成することはできません(結果A)。結果Bを結果として引き出す方法を教えてください。ありがとう。
表(購入):
Purchase_ID | StoreID | Amount
------------|---------|--------
1 | 21 | 22
2 | 23 | 13
3 | 25 | 6
4 | 26 | 23
5 | 28 | 18
表(ストア):
Store_ID | StoreName
---------|----------
21 | Adidas
22 | Nike
23 | Puma
24 | New Balance
25 | Crocs
26 | Converse
SQL:
SELECT IF(SUM(amount) IS NULL, 0, SUM(amount)) as totalAmount
FROM (
SELECT a.amount
FROM purchase a
INNER JOIN store b
ON a.store_id = b.storeid
GROUP BY a.amount
HAVING b.StoreName = 'Crocs'
ORDER BY a.amount DESC
LIMIT 3
) t
結果A:$ 6
説明A:量悪臭は$ 6です
結果B:$ 51
説明B:トップ3 = $図22(アディダス)+ 23(プーマ)+ $ 6の(クロックス)の合計量
なぜ結果Bが51ですか? – Blank
あなたはbのカテゴリを持っていますが、フィールドはありません。 –