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函数重写查询-使用此函数将阻止优化器使用索引。日历表是一种方法。不知道如何和在哪里使用比较问另一个问题,我会给你答案给我几分钟时间来完成这个查询