如何用SQL统计每日金额(100分)

  • 主题发起人 主题发起人 hehuan
  • 开始时间 开始时间
H

hehuan

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用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语句一句话解决问题比较好。
 
我一般会用存储过程来做:
create proc aaa
as
{
预先建一个表:table
date,value
2008-1-1 0
. .
. .
. .
2008-12-31 0
}
//统计结果存入临时表#temp
SELECT 日期, sum(学费) as money into #temp FROM Student GROUP BY 日期

//输出结果:
select table.date,#temp.money from table left outer join #temp
on table.date=#temp.日期
未经测试,请自行验证
 
将楼上的方法改改,
创建一个日期帐表。
存储过程。。
使用 while 循环,逐一每一个日期更新,这样查这个日期帐表,不就有了么
 
先分类汇总后,再按日期左联接.
 
同意楼上,首先创建一个全年日期临时表,然后进行连接即可实现
 
后退
顶部