我正在尝试构建查询来检查我的库存。
SELECT COUNT(*) AS item_count,
reseller_id, sum(sold) as
sold_count, sum(refunded) as
refunded_count,**sum(case price when
refunded <> 1 AND sold=1) as pricesum** FROM stock
GROUP BY
reseller_id ORDER BY sold_count ASC
上述查询将选择所有项目,并由每个经销商将其分配总项目和退款计数。粗体部分是错误的我想得到总价(这是每个经销商没有退款+销售的总和(通过经销商ID注明i组)
答案 0 :(得分:2)
使用case语句的这样的东西可能会起作用:
SUM(CASE
WHEN refunded <> 1 AND sold = 1
THEN price
ELSE
0
END)
答案 1 :(得分:1)
我注意到的事情:
答案 2 :(得分:0)
尝试制作子查询,如:
SELECT SUM(price) FROM stock WHERE refunded != 1 AND sold = 1
完整的查询如下所示:
SELECT
COUNT(*) AS item_count,
reseller_id,
SUM(sold) as sold_count,
SUM(refunded) as refunded_count,
(SELECT SUM(price) FROM stock WHERE refunded != 1 AND sold = 1 WHERE reseller_id=1 GROUP BY reseller_id) as pricesum
FROM stock
WHERE reseller_id=1
GROUP BY reseller_id
ORDER BY sold_count ASC