我想要做的是将COUNT添加到一个连接在多个表上的查询中,但我只想计算符合特定条件的事物。
我希望count只计算具有ReceivedDate的行,如下所示:
COUNT(ReceivedDate = "0000-00-00 00:00:00", plpq.PurchaseOrderID) AS OrdersForPart
有没有办法实现这一目标而不必求助于子查询?
答案 0 :(得分:2)
只需使用。
SELECT COUNT(plpq.PurchaseOrderID) AS OrdersForPart FROM ... WHERE ReceivedDate = '000-00-00 00:00:00'
应该工作得很好;)
答案 1 :(得分:2)
假设您可能希望对其他行执行某些聚合,因此不能完全将它们排除在WHERE
子句中。
COUNT(CASE
WHEN ReceivedDate = "0000-00-00 00:00:00"
THEN plpq.PurchaseOrderID
END) AS OrdersForPart
如果不是这种情况,WHERE
条款当然是最佳选择。
答案 2 :(得分:1)
SELECT COUNT(plpq.PurchaseOrderID)
AS OrdersForPart
FROM table
WHERE ReceivedDate = "0000-00-00 00:00:00"