如何用SQL统计每日金额

nevergrief 2008-02-10 09:28:45
如何用SQL统计每日金额

事情是这样的,作为一个学校不是每天都有收入(也因此没有当天记录),但学校依然要有当天的统计:

表名: Student
学生编号 日期 学费 姓名 班级 上课开始时间 上课结束时间
2255 2008-1-26 1000 赵二 英语高级 2008-1-26 2008-2-26
2256 2008-1-26 1000 张三 英语高级 2008-1-26 2008-2-26
2249 2008-1-29 500 李四 英语中级 2008-2-1 2008-3-1


SELECT 日期, sum(学费) as money FROM Student GROUP BY 日期

结果显示如下:
2008-1-26 2000
2008-1-29 500

但是2008-1-27、2008-1-28没有统计结果!!怎么办?特别是如果用DBChart曲线显示的话,中间跳过几天显示曲线是很不合理的!非常感谢各位指教!



PS,如果用TChart可能能够解决这个问题,难道用SQL分别统计每一天再输出?那样效率太低!(每年的统计信息都要执行365个SQL语句!)所以最好还是用SQL语句一句话解决问题比较好。

...全文
606 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacklee_888 2008-02-14
  • 打赏
  • 举报
回复
liuyann 的做法很好﹐我們也是這樣處理的
OracleRoob 2008-02-13
  • 打赏
  • 举报
回复
直接分组可能不行,因为有的日期可能没有数据

需要先创建一个中间表,把所有符合条件的日期追加到这个表中。

再用这个表与你的表左关联后,分组求和
wwwwb 2008-02-13
  • 打赏
  • 举报
回复
一般是将所有日期插入到一个临时表中,再与工作表连接
凤影 2008-02-12
  • 打赏
  • 举报
回复
斑竹能细说下怎么弄么?

我一般都使用1楼的方法。
懒得去死 2008-02-11
  • 打赏
  • 举报
回复
按照日期列GROUP BY 就可以了。仔细看一下手册。
liuyann 2008-02-10
  • 打赏
  • 举报
回复
create a "calendar" table
create table calendar
(
日期 DATE PRIMARY KEY
)


then insert the date to the table.

select d.日期,sum(学费)
from calendar d left join Student s on (d.日期 = s.日期)
group by d.日期

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧