SQL语句选择列的计数

时间:2017-10-25 13:50:42

标签: sql sql-server

我有这个SQL查询:

SELECT  
    COUNT(SDDOCO) AS Total 
FROM 
    KAIPRDDTA.F4211LA, KAIPRDDTA.Dates 
WHERE 
    SDDRQJ = Day10

返回今天所有订单的计数。

我正试图获得第二列,以便我有这个:

Sample

要获得未完成的订单,请执行以下操作:SDNXTR< '562'。我如何将其添加到我的SQL查询中以便我可以实现此目标?如果您需要更多信息,请提前告知我们,并提前感谢您的回复。

2 个答案:

答案 0 :(得分:2)

这里有两个选项:

SELECT  
    COUNT(SDDOCO) AS Total,
    SUM(CASE WHEN SDNXTR < '562' THEN 1 ELSE 0 END) AS Not_Finished_Yet_With_SUM,
    COUNT(CASE WHEN SDNXTR < '562' THEN 1 ELSE NULL END) AS Not_Finished_Yet_With_COUNT,
FROM 
    KAIPRDDTA.F4211LA, KAIPRDDTA.Dates 
WHERE 
    SDDRQJ = Day10

答案 1 :(得分:1)

您可以使用case语句计算SDNXTR < '562'值,如下所示:

 SELECT count(SDDOCO) as Total, 
        sum(case when SDNXTR < '562' then 1 else 0 end) as not_yet_finished 
 FROM KAIPRDDTA.F4211LA, KAIPRDDTA.Dates
 WHERE SDDRQJ = Day10