SQL语句如下:
SELECT 
ofm.entrymonth,
ofmd.engname,sum(ofmd.quantities),sum(ofmd.supply),sum(ofmd.factsupply),sum(ofmd.receivables)
FROM om_funds_monthvalue ofm
INNER JOIN
om_funds_monthvalue_det ofmd
on ofm.fundsno = ofmd.fundsno
GROUP BY ofm.entrymonth,ofmd.engname
ORDER BY ofm.entrymonth DESC查询的结果为:
2009-08-26 天津狗不理包子总部前厅   99  99  99 99
2009-08-08 天津狗不理包子总部前厅   132 132 132 132
2009-08-08 天津麦当劳大厅        1157       11377 22487 108665
2009-07-26 天津麦当劳大厅        67  76 66 66
2009-07-08 天津麦当劳大厅        57  69 69 69现在要按照这样的条件显示数据:每个统计月的起始时间为上月的26号到本月的25号,例如要统计8月份的数据,起始时间就是从07-26至08-25,办法想尽了还是没写出来,请高手指点指点。

解决方案 »

  1.   

    Group By
       日期-26天再截取到月份
      

  2.   

    改成 select month(dateadd(d,-26,ofm.entrymonth)) as enrtymonth .........
        group by month(dateadd(d,-26,ofm.entrymonth)) 
      

  3.   

    1楼正解,但实际只需要减25就OK了
    参考一下select 100*year(dateadd(d,-25,orderdate))+month(dateadd(d,-25,orderdate)),count(orderid) as numbers from orders group by year(dateadd(d,-25,orderdate)),month(dateadd(d,-25,orderdate))
      

  4.   

    感觉查询出来的结果不对啊 
    比如我这样查询
    SELECT month(dateadd(d,-25,'2009-11-25')) 显示出来应该是11
    SELECT month(dateadd(d,-25,'2009-11-26')) 显示出来应该是12
    实际都小个一个月份
      

  5.   


    select 100*year(dateadd(m,1,dateadd(d,-25,orderdate)))+month(dateadd(m,1,dateadd(d,-25,orderdate))),count(orderid) as numbers 
    from orders group by year(dateadd(m,1,dateadd(d,-25,orderdate))),month(dateadd(m,1,dateadd(d,-25,orderdate)))
    理解错误,再加一月即可完成
    前一个表达式计算为(7.26-8.25)计入7月去了