1

このSQL結合についてサポートが必要です。

私はこのようなテーブル「販売」を持っています

date        idpart
1311316400   5
1321316400   6
1341216400   7
1351516400   8

とこのようなテーブル「パーツ」

idpart   name    inprice  outprice
 5        a        10       40
 6        b        20       55
 7        c        20       55 
 8        d        20       55

次に、次のようにして、日付Aと日付Bを指定したユーザー間のすべてのパーツ販売の合計を求めます。

SELECT idpart, SUM( inprice ) 
FROM parts, sales
WHERE parts.idpart = sales.idpart
GROUP BY idpart
LIMIT 0 , 30

しかし、これを行うことにより、部品が販売テーブルにあるたびに、価格の値を取得します。AとBの間の全期間の合計が必要です。どこに挿入する必要があるのか​​わかりません:

WHERE date BETWEEN A AND B

SQL初心者のためのヒントはありますか?

4

1 に答える 1

3

質問が正しければ、キーワードを使用して条件を組み合わせることができますAND

SELECT SUM( inprice ) 
FROM parts, sales
WHERE parts.idpart = sales.idpart
AND sales.date BETWEEN A AND B
LIMIT 0 , 30

読みやすくするために、常に「新しい」JOIN構文を使用してください。クエリがより複雑になると、これによりクエリを理解しやすくなります。

SELECT SUM( parts.inprice ) 
FROM sales
JOIN parts ON ( parts.idpart = sales.idpart )
WHERE sales.date BETWEEN a AND b
LIMIT 0, 30
于 2012-12-15T19:06:48.133 に答える