1.抓取系統當前月份 往前推3個月的資料,並且按照月份對一個項目進行加總。
如現在是8月,即抓5 6 7 三個月的資料,如是9月 就抓6 7 8 的資料。如果抓出來的是金額資料,還要對金额按照月份进行加总。
2.或者直接分开抓,不用一个语句。先抓上个月  再抓上上个月。
语句应该怎么写

解决方案 »

  1.   

    select convert(varchar(7),时间,120) , sum(金额)
    from tb
    where datediff(mm,时间,getdate()) between 1 and 4
    group by convert(varchar(7),时间,120)
      

  2.   

    select convert(varchar(7),时间,120) , sum(金额)
    from tb
    where datediff(mm,时间,getdate()) between 1 and 3
    group by convert(varchar(7),时间,120)
      

  3.   

    select id,sum(数据),left(convert(char(8),表中日期,112),6) from 表 where
    docdat  between 
    convert(datetime,convert(char(8),dateadd(dd,-convert(int,right(convert(char(8),dateadd(mm,-3,getdate()),112),2))+1, dateadd(mm,-3,getdate())),112)) and 
    ---前3个月的最小值,月初
    dateadd(mm,3,convert(datetime,convert(char(8),dateadd(dd,-convert(int,right(convert(char(8),dateadd(mm,-3,getdate()),112),2))+1, dateadd(mm,-3,getdate())+1),112))-0.00000006)-1
    ---前3个月的最大值,月末
    and id=1022 --条件
    group by pluid,left(convert(char(8),表中日期,112),6)