Aquila311 2009-07-01 13:13
浏览 503
已采纳

SQL按日期自动汇总数据,如何实现?

有个朋友让我帮做做个个人记账程序。我想实现这个功能:

统计每天消费金额、每周消费金额、每月消费金额、每年消费金额。

具体点就是,今天买物品一:10元 买物品二:20元。如果自己不点
当日结算按钮,那么就在第二天,或者下次登录的时候自动结算前一天的
消费金额,插入数据库中,就是30元。

登陆的时候在根据日期结算每周的消费、每月的消费。比如今天是7月1日。
那么我今天登陆了,自动结算6月份的消费总额。我星期一登陆了,自动结算
上周的消费金额。

说白了,就是登陆了,就自动检测上一日、上一周、上一月的消费是否结算,
如果没有,系统自己结算。改如何实现?用SQL怎么实现,用程序如何实现。

我不要用户自己点击按钮结算,我就想用户只输入消费明细。程序自动算出结算
数据,并插入相应的表中!

如何实现,请大家指教!
就15分,全给你了!

  • 写回答

4条回答 默认 最新

  • ChocooM 2009-07-01 14:12
    关注

    其实就是根据时间段来计算一个总和的问题,只要时间段明确了,通过DB的sum函数就能计算出结果了。

    比如: 你数据库中在记录每个物品金额的时候都记录一个当前时间,并未:mydate(date类型)

    对于“上一天”只要条件:
    [code="sql"]
    where to_char(sysdate-1,'yyyymmdd') = to_char(mydate,'yyyymmdd')
    [/code]

    对于“上一周”只要条件:
    [code="sql"]
    where to_char(mydate,'yyyymmdd') >= to_char((sysdate-to_char(sysdate,'d')-7),'yyyymmdd')
    and to_char(mydate,'yyyymmdd') <= to_char((sysdate-to_char(sysdate,'d')-1),'yyyymmdd')
    /code

    对于“上个月”只要条件:
    [code="sql"]
    where to_char(add_months(sysdate,-1),'yyyymm') = to_char(mydate,'yyyymm')
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?