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

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条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?