这是培训数据库课程后的考试题上机题内容,昨天考的。当时做的时候没有看到表格中的“合计”,30分的题,估计只能得10分。。。
题目是这样的:
数据库上机试题
1、 题目:要求用存储过程实现如下报表,其他不限。 (30分)
(1)全省2007年分税种统计,结果表样如下:
税种
|
07年税额
|
营业税
|
|
个人所得税
|
|
印花税
|
|
资源税
|
|
企业所得税
|
|
房产税
|
|
城市维护建设税
|
|
车船税
|
|
烟叶税
|
|
城镇土地使用税
|
|
土地增值税
|
|
防洪保安费
|
|
其他罚没收入
|
|
文化建设事业费
|
|
价格调节基金
|
|
教育费附加收入
|
|
合计
|
|
|
|
(2)数据字典说明:
表:rk34
|
字段名
|
字段类型
|
字段解释
|
fsrq
|
varchar(10)
|
发生日期
|
szdm
|
varchar(4)
|
税种代码
|
zclx
|
varchar(3)
|
注册类型
|
nse
|
decimal(16, 2)
|
税额
|
dsdm
|
varchar(7)
|
地市代码
|
nd
|
char(4)
|
年度
|
表:dm_szdm
|
字段名
|
字段类型
|
字段解释
|
ZSXM_DM
|
char(2)
|
税种代码
|
ZSXM_MC
|
varchar(40)
|
税种名称
|
(3)表脚本和数据,请看附件dm_szdm.txt和 rk34.txt,请直接执行脚本就可以。
(4)补充说明:完成后,请将算法和计算结果存成文档提交,文档须以答题人姓名为名。
题目考查的自己认为至少应该包括三点,一个是groupby分组统计、连接,一个是如何加入“合计”,再一个,表格题头中的“07年”如何替换成实际年份,就是可以根据存储过程传入的年份参数而相应修改。
当时考试的时候居然没有看到“合计”二字,只想到题头的“07年”如何改了,但没有找到方法,现在也没找到。
今天把“合计”功能做出来了。题头如何修改,还请大家指点,谢谢。
这是我今天补充后的存储过程:
CREATE PROCEDURE dbo.proc_shuizhongtongji
@nianfen varchar(4)
AS
BEGIN
create table #shuishoutongji (ZSXM_MC char(40),sum_nse decimal(16,2))
insert into #shuishoutongji
select dm_szdm.ZSXM_MC,t_dm.sum_nse
from dm_szdm,
(select szdm,sum(nse) sum_nse from rk34 where nd=@nianfen group by szdm) t_dm
where dm_szdm.ZSXM_DM=t_dm.szdm
declare @total decimal(16,2)
select @total=sum(sum_nse) from #shuishoutongji
insert into #shuishoutongji values('合计',@total)
select ZSXM_MC as '税种',sum_nse as '07年税额' from #shuishoutongji
drop table #shuishoutongji
END
执行代码:
exec proc_shuizhongtongji '2007'
注:以上代码在Sybase数据库中调试通过。
分享到:
评论