日期:2014-05-19  浏览次数:20533 次

请教一个统计报表的sql语句??谢谢大家帮助!

create   table   部门表
(
  部门编号   varchar(4),
  部门名称   varchar(20),
  部门类别   varchar(20)
)
insert   into   部门表   select   '01 ', 'a营业部 ',null
insert   into   部门表   select   '0101 ', 'a1营业厅 ', '自有厅 '
insert   into   部门表   select   '0102 ', 'a2营业厅 ', '自有厅 '
insert   into   部门表   select   '0103 ', 'b1营业厅 ', '合作厅 '
insert   into   部门表   select   '0104 ', 'b2营业厅 ', '合作厅 '
insert   into   部门表   select   '0104 ', 'b3营业厅 ', '合作厅 '

--------------------------------
create     table   收费表
(

项目名称     varchar(20),
当日营业款   decimal(13,2),
日期     datetime,
所属部门     varchar(20)
)
insert   into   收费表   select   '合作厅营业款 ',10000, '2007-1-1 ', 'b1营业厅 '
insert   into   收费表   select   '合作厅营业款 ',20000, '2007-1-1 ', 'b2营业厅 '
insert   into   收费表   select   '合作厅营业款 ',15000, '2007-1-2 ', 'b1营业厅 '
insert   into   收费表   select   '合作厅营业款 ',30000, '2007-1-2 ', 'b2营业厅 '

----------------------------------

create   table   押金表
(
合作厅名称   varchar(20),
押金金额     decimal(13,2),
交款日期   datetime,
补交押金金额   decimal(13,2),
退还押金金额   decimal(13,2)
)
insert   into   押金表   select   'b1营业厅 ',1000, '2007-1-1 ',500,300
insert   into   押金表   select   'b2营业厅 ',2000, '2007-1-1 ',1000,600
insert   into   押金表   select   'b1营业厅 ',3000, '2007-1-2 ',1500,400
insert   into   押金表   select   'b2营业厅 ',4000, '2007-1-2 ',2000,800
--------------------------------------
/*
要生成的报表格式为:(按照收费表的日期区间范围进行统计,例如统计2007-1-1到2007-1-2这2天的数据)
合作厅名称         押金余额       总收费额           日平均收费额           差额
b1营业厅               5300             25000                 12500                   7200
b2营业厅               7600             50000                 25000                   17400
b3营业厅               0                   0                         0                           0
*/
drop   table   部门表
drop   table   收费表
drop   table   押金表
/*
报表数据说明:

合作厅名称:指部门表中所有类别为“合作厅”的营业厅
押金余额=指押金表中的“押金金额+补交押金金额-退还押金金额”注意:这里的押金余额是累加的,即2007-1-2的余额=2007-1-1的余额+2007-1-2的余额
总收费额=收费表中2007-1-1到2007-1-2时间段内,每个合作厅当日营业款的总和
日平均收费额=总收费额/2007-1-1到2007-1-2之间的天数(按照收费表的日期范围进行统计)
差额=日平均收费额-押金余额

------------------------
如果对应部门表里的合作厅没有费用产生,请将报表中各种费用设置为0.00