私はこれらのSQLのテーブルを持っている一意の「列」ごとにSUM()を取得するにはどうすればよいですか?
サプライヤー
SUPPLIERID | SUPPLIERNAME
1 | sup1
2 | sup2
3 | sup3
ITEMID | SOLD | SUPPLIER ID | DATE
pen | 10 | 1 | 2011-10-21
pen | 5 | 1 | 2011-10-22
pen | 5 | 1 | 2011-10-23
pen | 20 | 3 | 2011-10-24
私は現在、このスクリプトを使用してい
ITEMID | BOUGHT | SUPPLIER ID | DATE
pen | 20 | 1 | 2011-9-21
pen | 5 | 3 | 2011-9-24
を買ったが、動作していないよう販売販売され購入されたSUM()
が3倍になったためです。私は理由があると思うが、売り上げは3行で買ったのは2行しかないからです。どのようにこれを修正するための任意のアイデア?
SELECT suppliername, SUM(sold) as sold, SUM(bought) AS bought
FROM sold s
LEFT JOIN supplier sp
ON s.supplierid = sp.supplierid
LEFT JOIN bought b
ON sp.supplierid = b.supplierid
GROUP BY suppliername
それは動作しますが、感謝を!あなたが今行ったことと「派生した」表が意味することを説明できるかどうか聞いてもよろしいですか?私はs&bを削除しようとしたときにエラーが発生しました。 – JohnSmith
@ JohnSmith - 申し訳ありませんが、説明を追加しました。助けてくれることを願っています。 – Lamak
ありがとうございます。私はそれを取得し始めています。最後の1つの質問。私はSOLDの派生クエリとトップSELECTステートメントに日付を含めようとしましたが、ImをSQLで実行するとNULL値を取得しました。私は間違って何をしていますか? – JohnSmith