SQL非自然月求和

字段“到货日期、总金额、实收数量” ,日期是datetime 格式时。
现在希望用SQL语句查出,每月的汇总金额和汇总数量。但是月份为非自然月。是上月26日到本月25日(每个月都是这样)。
请高手指教,怎么下语法,谢谢!
下图是按自然月查出来的,但是不是客户要的非自然月汇总。

看你这个截图应该是mssql的,临时写了个语句,凑合用吧。

select 到货月,sum(金额)as 总金额,sum(实收数量)as 总实收数量 from
(
select case when day(到货日期)>=26
then convert(varchar(6),dateadd(dd,10,到货日期),112)
else convert(varchar(6),到货日期,112) end as 到货月,*
from
(select '20131201' as 到货日期,100 as 金额,100 as 实收数量 union
select '20131226' as 到货日期,50 as 金额,50 as 实收数量) a
) x
group by 到货月
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-28
select year(到货日期)*100+month(到货日期)+(case when day(到货日期)>=26 then 1 else 0 end) 到货日期, sum(总金额) 总金额, sum(实收数量) 实收数量
from 表
group by year(到货日期)*100+month(到货日期)+(case when day(到货日期)>=26 then 1 else 0 end)
第2个回答  2013-12-28
group by 后面用 case when把日期截取出来,如果日期>26,月份+1
相似回答