按照非自然月统计每月的金额,并显示出月份和金额
例如,有以下记录
jino moneynum jiludate
1 123 2008-12-3
2 234 2008-12-27
3 200 2009-1-1
4 300 2009-1-27
5 400 2009-2-2每月开始日设置为25日,结束日为24日。
则以上五条记录统计后显示为:
日期 金额
2008-12 123
2009-01 434
2009-02 700
只用sql文,不用查出数据后再用程序分月计算,该怎么写sql文?
多谢!
例如,有以下记录
jino moneynum jiludate
1 123 2008-12-3
2 234 2008-12-27
3 200 2009-1-1
4 300 2009-1-27
5 400 2009-2-2每月开始日设置为25日,结束日为24日。
则以上五条记录统计后显示为:
日期 金额
2008-12 123
2009-01 434
2009-02 700
只用sql文,不用查出数据后再用程序分月计算,该怎么写sql文?
多谢!
select iif(日期>24,取左7位(转换成字符(日期+1月)),取左7位(转换成字符(日期))),sum(moneynum) as j from table group by iif(日期>24,取左7位(转换成字符(日期+1月)),取左7位(转换成字符(日期)))
运行时检查当前月,如果没有定义,就禁止录入数据.
大部分ERP都这样做的.
"Update table1 Set AccountMonth = IIf(Day(jiludate) > 25, CDate(Format(DateAdd('m', 1, jiludate), 'yyyy-m')), CDate(Format(jiludate, 'yyyy-m')))" 汇总
"Select Format(AccountMonth, 'yyyy-m') As 日期, Sum(moneynum) As 金额 From table1 Group By AccountMonth"
年度 月份 开始日期 结束日期
---- ---- ---------- ----------
2008 12 2008-11-25 2008-12-24
2009 01 2008-12-25 2009-01-24
2009 02 2009-01-25 2009-02-24
---- ---- ---------- ----------
查询为
SELECT 会计期间.年度 + '-' + 会计期间.月份 AS 日期, Sum(交易表.moneynum) AS 金额
FROM 会计期间, 交易表
WHERE (((交易表.jiludate)>=[会计期间].[开始日期] And (交易表.jiludate)<=[会计期间].[结束日期]))
GROUP BY 会计期间.年度, 会计期间.月份;SELECT 会计期间.年度, Sum(交易表.moneynum) AS 金额
FROM 会计期间, 交易表
WHERE (((交易表.jiludate)>=[会计期间].[开始日期] And (交易表.jiludate)<=[会计期间].[结束日期]))
GROUP BY 会计期间.年度;
jino(自增型整数) moneynum(货币型) type(收入类型,文本型) jiludate(日期型) beizhu(备注型)
1 5000.00 工资 2008-12-25 工资
2 500.00 红包 2009-1-26 新年红包
3 20.50 利息 2009-2-2 银行利息收入统计画面如下:
统计期间:
radio button
1.天 2.周 3.月 4.季 5.年
每月开始日(1-31的下拉list)
开始日期
结束日期
收入类型
如果上图显示不了,请参考qq空间,other相册中的收入统计界面。多谢各位!