我有一个stock_item表,它存放了所有经过我的股票系统的股票。
每个股票项目可以处于多种状态之一,如: ( not_yet_allocated )、1 (已分配)、3 (返回).等。
我正在尝试创建一个通知系统,当我对一个特定的股票类型的库存不足时,它会让我知道。
以下是我到目前为止所使用的SQL,
SELECT name, status, count(id) AS count
FROM stock_item
WHERE status IN (0,3) /* Items that are not yet allocated (0), or items that have been returned (3) */
GROUP BY name, status
ORDER BY count ASC;上面的SQL工作得很好,唯一的问题是,如果WHERE子句不满足,它就不会显示股票类型,换句话说,即使某个类型没有“库存”项,我仍然需要以计数为0返回该类型。
发布于 2013-08-10 17:30:54
需要有条件的聚合才能查看所有项:
SELECT name, status, sum(case when status IN (0,3) then 1 else 0 end) AS count
FROM stock_item
GROUP BY si.name, si.status
ORDER BY count ASC;https://stackoverflow.com/questions/18164530
复制相似问题