1

我对这个SQL products/productsales有类似的问题

我想做同样的查询,但不是只检查数量,而是要检查“总计”(即数量 * 价格)。“价格”是销售表中的一个字段。

这是该链接上建议的原始查询:

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 )

因此,我需要将每次销售的 (s.quantity*s.price) 相加,然后与 @X 进行比较,而不是 Sum(s.quantity)。(每次销售价格可能不同)

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 回答