Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择“按月计数”_Sql_Sql Server 2008_Select_Count_Case - Fatal编程技术网

Sql 选择“按月计数”

Sql 选择“按月计数”,sql,sql-server-2008,select,count,case,Sql,Sql Server 2008,Select,Count,Case,我有一张皮卡表,正试图写一份报告,告诉我一年中每个月有多少皮卡。 应该是这样的 到目前为止,我有这个 SELECT DATEPART(MONTH, PickupDate)as 'Month', count (CASE WHEN DATEPART(YEAR, PickupDate) = 2012 THEN 1 ELSE 0 end)as 'Pickups' ,count (CASE WHEN CategCode = 'NB' and DATEPART(YEAR, PickupDate) =

我有一张皮卡表,正试图写一份报告,告诉我一年中每个月有多少皮卡。
应该是这样的

到目前为止,我有这个

  SELECT
DATEPART(MONTH, PickupDate)as 'Month',
count (CASE WHEN DATEPART(YEAR, PickupDate) = 2012 THEN 1 ELSE 0 end)as 'Pickups'
,count (CASE WHEN CategCode  = 'NB' and DATEPART(YEAR, PickupDate) = 2012  THEN 1 ELSE 0 end) as 'Newborn'
FROM dbo.Pickup 
where DATEPART(YEAR, PickupDate) = 2012
group by DATEPART(MONTH, PickupDate)

WITH ROLLUP
我不知道怎么计算新生柱,有什么想法吗? 到目前为止,我的查询计算不正确,只需计算皮卡表中的所有皮卡。

计数更改为
求和
或将
其他0
更改为
其他空值

计数(0,1,0)
=3,
总和(0,1,0)
=1,
计数(NULL,1,NULL)
=1


如果我可以提供另一个提示,请尝试使用日期比较而不是DATEPART函数重写查询-使用此函数将阻止优化器使用索引。日历表是一种方法。

不知道如何和在哪里使用比较问另一个问题,我会给你答案给我几分钟时间来完成这个查询