我想做同样的查询但不仅仅是检查数量我想检查“总数”(即数量*价格)。 “price”是销售表中的一个字段。
这是该链接上建议的原始查询:
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添加(s.quantity * s.price),然后将其与@X进行比较。 (每次销售的价格可能不同)
答案 0 :(得分:1)
HAVING (Sum(s.quantity*s.price)) > @X
可能会成功吗?
答案 1 :(得分: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)