1

これと同様の質問があります SQL products/productsales

同じクエリを実行したいのですが、数量をチェックするだけでなく、「合計」(つまり、数量 * 価格) をチェックしたいと考えています。「価格」は、sales テーブルのフィールドです。

そのリンクで提案された元のクエリは次のとおりです。

SELECT p.[name]
 FROM products p
 WHERE p.product_id in (SELECT s.product_id
     FROM productsales s
     WHERE s.[date] between @dateStart and @dateEnd
     GROUP BY s.product_id
     HAVING Sum(s.quantity) > @X )

そのため、Sum(s.quantity) の代わりに、各 SALE を合計して @X と比較するには、(s.quantity*s.price) が必要です。(販売ごとに価格が異なります)

4

2 に答える 2

1
HAVING (Sum(s.quantity*s.price)) > @X

トリックを行うかもしれませんか?

于 2009-02-04T09:12:50.400 に答える
0

(Cagcowboyからの回答は承認済みとしてマークされましたが、コメントはそれが機能しなかったことを示しているようです。したがって、これは別のアプローチです)

このコードは、派生テーブルを使用して最初に各製品の「合計」を計算し、次にグループ化などをその上に階層化します。

SELECT p.name from products p
WHERE p.product_id IN
    (SELECT product_id from 
        (SELECT product_id, (quantity * price) as total
         FROM productsales WHERE date between @dateStart and @dateEnd) as s
    GROUP by s.product_id
    HAVING sum(total) > @x)
于 2009-02-04T14:37:49.963 に答える