1

POS システム アイテムの売上データに関する SQL の質問があります。データベースには、「Totals」テーブルがあります。そのテーブルには、「TtlType」フィールドで識別されるさまざまなレコードが含まれています。2タイプでやってます。値 11 は Item POS Sales で、12 は Item Cost Sales です。

SQLクエリを実行するとき、次の行に沿って何かを実行しています

SELECT ItemNumber,
       SUM(ItemCount),
       SUM(ItemAmount)
FROM Totals 
WHERE TtlType = 11 
      AND Date = 8/1/2012

TtlType 12 も含めたいのですが、すべてのデータを 1 つの行にマージするにはどうすればよいですか?

TtlType 11 と 12 を含めるように WHERE を変更すると、メニュー項目ごとに 2 つの別々の行が表示されます。最初のものは販売価格である TtlType 11 であり、次はコストである 12 です。両方の TtlType は、同じフィールド名を使用して情報を記録します (ItemCount、ItemAmount)

これを十分に説明したことを願っています。GROUP BY を使用しても、同じ結果が得られます。

4

1 に答える 1

1

あなたのデータ構造、または ItemNumber の重要性を完全に理解しているかどうかはわかりません。

ただし、ご存知のように SUM を実行するために GROUP BY は必要ありませんが、SELECT と GROUP BY に ItemNumber を含めると、その列でグループ化されるため、行が重複することは間違いありません。

2 つの SUM 関数で問題が発生することはありません。

SELECT SUM(ItemCount), SUM(ItemAmount) FROM Totals WHERE TtlType IN (11,12) 
AND Date = 8/1/2012
于 2012-11-18T03:16:34.520 に答える