2、描述:
表1:科目表
表名:tbgBudgetItem
列名:
字段名 中文名 数据类型 PK/FK 是否为NULL Default 关联表
BudgetItemID 主ID Int PK N 自动增长
ItemName 科目名称 Varchar(200) N
ItemCode 科目代码 Varchar(50) N
ItemState 科目状态 Char(1) N ‘1’
ItemSNO 科目序号 Varchar(50) N
Re 备注 Varchar(500) Y ‘’ 表2:预算表
表名:tbgMonthBudget
列名:
字段名 中文名 数据类型 PK/FK NULL Default 关联表
MonthBudgetID 主ID Int PK N 自动增长
BudgetItemID 科目ID Int FK N tbgBudgetItem
BudgetYear 预算年度 Int N
BudgetMonth 预算月份 Int N
Amount1 费用金额 Money N 0
Amount2 资金金额 Money N 0
Amount 合计金额 Money 0
DraftDate 起草时间 DateTime 当前系统时间
Re 备注 Varchar(500) Y ‘’
问题一:(5分)
用SQL语言创建表1和表2;(建议写成存储过程实现)
要求:
1、 可以重复运行。考虑表存在的情况要先做删除;
2、 数据类型要正确(类型参照上述数据字典);
3、 主外键要清晰及关联表(参照上述数据字典)
问题二:(5分)
用SQL语句在表1中插入以下5条数据
BudgetItemID ItemName ItemCode ItemState ItemSNO Re
1000 会议费 A ‘1’ 001 公司会议费
1001 差旅费 B ‘1’ 002
1002 招待费 C ‘0’ 003
1003 广告费 D ‘1’ 004
1004 开发费 E ‘1’ 005 用SQL语句在表2中插入下面描述的数据:
1、 预算科目来源表1状态为‘1’的科目,
2、 预算年度为2009;预算月份1月到12月;
3、 费用金额为月份的2倍;每季度最末的月份的资金金额等于本季度各个月份费用金额之和,其它月份的资金金额为0;合计金额字段=费用金额+资金金额;
例如:
MonthBudgetID BudgetItemID BudgetYear BudgetMonth Amount1 Amount2 Amount DraftDate Re
1000 1000 2009 1 2 0 2
1001 1000 2009 2 4 0 4
1002 1000 2009 3 6 12 18
…… …… …… …… …… …… …… …… ……

问题三:(20分)
根据上表一和表二的数据,统计金额字段tbgMonthBudget.Amount,编写一个存储过程,运行该存储过程结果如下:
提示:建议在数据展示中使用临时表,如需循环,建议使用游标;
预算科目 09年1月 09年2月 09年3月 09年4月 09年5月 09年6月 09年7月 09年8月 09年9月 09年10月 09年11月 09年12月
会议费
差旅费
招待费
广告费
开发费