+ -
当前位置:首页 → 问答吧 → 统计问题

统计问题

时间:2011-11-14

来源:互联网

一张表TB(名称,数量,日期)
现在有个查询是这样的,根据一个时间段出来结果如下
名称 时间段内数量 当月数量 当年数量

作者: w_xxxbbb   发布时间: 2011-11-14

SQL code
select 名称,
       时间段内数量=sum(case when 日期 between 日期1 and 日期2 then 数量 else 0 end),
       当月数量=sum(case when datediff(month,日期,getdate())=0 then 数量 else 0 end),
       当年数量=sum(case when datediff(year,日期,getdate())=0 then 数量 else 0 end)
from tb group by 名称
 

作者: ssp2009   发布时间: 2011-11-14

LZ给些数据和要求的结果吧

作者: OrchidCat   发布时间: 2011-11-14

給的時間段?有沒有跨年月的數據

作者: roy_88   发布时间: 2011-11-14

年/月份以開始日期
SQL code
這里舉個例子
DECLARE @dt1 DATETIME,@dt2 DATETIME

SET @dt1='2011-01-01'
SET @dt2='2011-01-15'

select 名称,
       时间段内数量=sum(case when 日期 between @dt1 and @dt2 then 数量 else 0 end),
       当月数量=sum(case when MONTH(日期)=MONTH(@dt1) then 数量 else 0 end),
       当年数量=sum(case when YEAR(日期)=YEAR(@dt1) then 数量 else 0 end)
from tb 
WHERE 日期 =YEAR(@dt1)
group by 名称

作者: roy_88   发布时间: 2011-11-14