数据库试验上机答案整理-中国石油大学-龚安_第1页
数据库试验上机答案整理-中国石油大学-龚安_第2页
数据库试验上机答案整理-中国石油大学-龚安_第3页
数据库试验上机答案整理-中国石油大学-龚安_第4页
数据库试验上机答案整理-中国石油大学-龚安_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验四 SQL 练习 2一、实验目的1掌握索引的建立、删除及使用;2掌握单表查询、连接查询、嵌套查询和集合查询;3掌握插入数据、修改数据和删除数据语句的非常用形式。二、实验学时2 学时三、实验内容1 利用 Query Analyzer 完成以下操作: 在预算日期、结算日期和入账日期上分别建立索引,并在查 询操作中体会索引的作用。 在完成第 2 题的查询操作后,删除预算日期、结算日期和入 账日期上的索引。2 利用 Query Analyzer 完成以下操作: 采油一矿二队2016-5-1到 2016-5-28有哪些项目完成了预算,列出相应明细。 采油一矿二队2016-5-1到 2016-5-28

2、有哪些项目完成了结算,列出相应明细。 采油一矿二队2016-5-1到 2016-5-28有哪些项目完成了结算,列出相应的材料费消耗明细。 采油一矿二队 2016-5-1到 2016-5-28有哪些项目完成了入-可编辑修改 -账,列出相应明细列出采油一矿二队2016-5-1到 2016-5-28总的预算金额。列出采油一矿二队2016-5-1到 2016-5-28总的结算金额。列出采油一矿二队2016-5-1到 2016-5-28总的入账金额。列出采油一矿 2016-5-1 到 2016-5-28 总的入账金额。有哪些人员参与了入账操作。列出 2016-5-1 到 2016-5-28 进行了结算但

3、未入账的项目。(11) 列出采油一矿二队的所有项目,按入账金额从高到低排列。(12) 列出有哪些施工单位实施了项目,并计算各单位所有项目结 算金额总和(13) 找出消耗了材料三且消耗超过了2000元的项目,列出相应消耗明细(利用子查询 )。(14) 作业公司二队参与了哪些项目。(15) 作业公司一队和二队参与了哪些项目(利用 union )。(16) 采油一矿的油井是哪些作业队参与施工的。3利用 Query Analyzer 完成以下操作: 建立数据表(包含3个属性列:施工单位、年月、结算金 额)保存各个施工单位每月的结算金额总和。 用子查询将各个施工单位每月的结算金额总和插入到所建立 的数据

4、表中。 用带子查询的修改语句将采油一矿油井作业项目的结算人改 为“李兵” 用带子查询的删除语句删除采油一矿油井作业项目 撤消上述两个操作。四、实验报告提交实验内容中用 SQL 语句完成的题目的 SQL 语句文档及相应的执行结果。实验五 SQL 练习 3一、实验目的1掌握基本表的删除与修改;2掌握实体完整性、参照完整性和用户定义的完整性的定义、 检查和违约处理;3掌握视图的定义、查询和更新,了解视图的作用。二、实验学时2 学时三、实验内容1 利用 Query Analyzer 完成以下操作: 向在实验四中所定义的数据表增加“备注”列,其数据类型 为字符型,并查看新增列的值。 对上述数据表增加主码

5、约束条件,并观察在数据表中存在数 据的情况下主码约束是否创建成功, 然后再次执行实验四中实验内容 3.2 的操作,并观察记录执行结果。 删除上述数据表中的数据,然后再删除该数据表,对这两个 操作进行比较。2 利用 Query Analyzer 完成以下任务: 对实验三中所定义的 6 个数据表增加主码约束条件,并观察 在数据表中存在数据的情况下主码约束是否创建成功, 然后执行以下 2 个操作,观察并记录实体完整性的检查和违约处理。insertinto材料费表values(zy2016001,wm004,100,10)insertinto材料费表values(zy2016002,NULL,200,

6、10) 注:“材料费表”根据自己所命名的表名进行相应的替换。 对实验三中所定义的 6 个数据表增加相应的参照完整性约束, 并观察在数据表中存在数据的情况下参照完整性约束是否创建成功, 然后执行以下操作,观察并记录参照完整性的检查和违约处理。 将( y007 油井 112203002 )插入到油水井表。 insert into 材 料 费 表 values(zy2016007,wm006,100,10) 将作业项目编号 zy2016001 的施工单位修改为 “作业公司作 业五队”。 将单位代码表中的( 112202002 采油二矿二队)删除,查 看油水井表和作业项目表中的数据有何变化。 将物码表

7、中的( wm004 材料四 袋)修改为( wm04 材料 四 袋)。 撤销上述成功的更新操作。 注:“材料费表”根据自己所命名的表名进行相应的替换。 对实验三中所定义的 6 个数据表按以下要求增加相应的完整 性约束条件,并观察在数据表中存在数据的情况下完整性约束是否创 建成功。 单位代码表的单位名称不能取空值、且取值唯 油水井表的井别只允许取“油井”或“水井” ,单位代码不能 取空值。 物码表的名称规格不能取空值、且取值唯一,计量单位不能 取空值。 材料费表的消耗数量不能取空值,单价不能取空值。 对作业项目表根据实际应用的要求定义适当的用户定义的完 整性约束条件。3 利用 Query Anal

8、yzer 完成以下操作: 定义一个视图,用于保存作业项目表和材料费表的全部列。 查询上面定义的视图,可任意组合查询条件,构造出 2 个查 询。 定义一个反映作业项目预算状态的视图,并向该视图插入 (zy2016008,112202002,y005,10000, 张三, 2016-07-02) ,查 看作业项目表的数据有何变化。 撤销上述成功的更新操作。四、实验报告提交实验内容中用 SQL 语句完成的题目的 SQL 语句文档及相应 的执行结果。实验六 其它数据库对象的管理一、实验目的1掌握事务的概念、性质、定义及使用;2掌握游标的概念、组成、创建及使用;3掌握存储过程的概念、类型、特点、创建、执

9、行及管理。 4掌握触发器的概念、创建、管理及使用。二、实验学时2 学时三、实验内容1 利用 Query Analyzer 进行如下事务处理练习(把下列五条 语句作为一个事务处理, 只有五条语句全部成功执行才做提交, 并给 出成功的提示信息;否则就做回退处理,并给出具体的错误提示信息) :insert into 作 业 项 目 表values(zy2016006,112202002,y005,10000, 张三, 07-01-2016 ,07-04-2016,07-25-2016, 作业公司作业一队 , 堵漏 ,7000,2500,1000,1400,11900,李四,07-26-2016,11

10、900, 王五 ,07-28-2016)insert into材料费表 values(zy2016006,wm001,200,10)insert into材料费表 values(zy2016006,wm002,200,10)insert into材料费表 values(zy2016006,wm003,200,10)insert into材料费表 values(zy2016006,wm004,100,10)注:“作业项目表”、“材料费表”根据自己所命名的表名进行相 应的替换。2 利用 Query Analyzer 进行如下游标练习:定义一个游标, 用于存放作业项目表的全部行数据, 并打印以下 表

11、头和各行数据。表头:单据号 预算单位 井号 预算金额 预算人 预算日期 开工 日期 完工日期 施工单位 施工内容 材料费 人工费 设备费 其它费 用 结算金额 结算人 结算日期 入账金额 入账人 入账日期执行以上所定义的游标,查看是否能正确输出结果。3 利用 Query Analyzer 定义一个存储过程,要求完成以下功 能:生成某单位 ( 单位可以是采油厂或采油矿或采油队 )某段时间内 的成本运行情况(输入参数:单位代码 起始日期 结束日期)。输出格式* 单位* 时间-* 时间成本运行情况预算金额 结算金额 入账金额 未结算金额 未入账金额* * * * * *其中:未结算金额 =预算金额

12、-结算金额未入账金额 =结算金额 -入账金额分三种情况(单位分别为:采油厂、采油矿、采油队)执行以上 定义的存储过程,查看执行输出结果。4 利用 Query Analyzer 针对作业项目表定义三个触发器,分 别完成以下功能: 对作业项目表插入一行数据时,自动计算并插入结算金额字 段(结算金额 =材料费+人工费 +设备费 +其它费用)。 当修改作业表的某行数据时自动修改结算金额字段。 当删除作业表中一行数据时,自动删除材料费表中相应明细 数据。 对上述 3 个触发器用适当的更新语句进行验证,并查看结果 是否达到预期结果。四、实验报告提交实验内容中用 SQL 语句完成的题目的 SQL 语句文档及

13、相应 的执行结果。实验七安全机制2 .利用Query Analyzer 完成以下操作: 建立采油一矿的作业项目的视图,把该视图的查询权限授予 给采油一矿的用户userll,以userll的身份查询该视图,观察执行 情况;再以其他用户的身份查询该视图,观察执行情况。 创建一个用户user12,以user12的身份执行实验六中所定 义的存储过程,观察记录是否成功执行;然后把该存储过程的执行权 限授予给user12,再次以user12的身份执行该存储过程,观察记录 是否成功执行。 定义触发器,实现只能在工作时间内更新“作业项目表”的数据, 然后通过选择不同的时间进行适当的更新操作来验证。-实验3CR

14、EATE TABLE单位代码表(单位代码CHAR(20),单位名称 CHAR (20);CREATE TABLE油水井表(井号 CHAR(20),井别 CHAR(20),单位代码CHAR(20);CREATE TABLE施工单位表 (施工单位名称CHAR(20);CREATE TABLE 物码表(物码 CHAR(20),名称规格CHAR(20),计量单位 CHAR(20);create table 材料费表(单据号CHAR(20),物码 CHAR(20),消耗数量INT,单价MONEY,);CREATE TABLE作业项目表(单据号 CHAR(20),预算单位 CHAR(20),井号 CHAR

15、(20),预算金额MONEY,预算人CHAR(20),预算日期DATETIME, 开工日期DATETIME, 完工日期DATETIME, 施工单位CHAR(20), 施工内容 CHAR(20), 材料费 money, 人工费MONEY, 设备费MONEY, 其他费用money, 结算金额MONEY, 结算人CHAR(20), 结算日期DATETIME,入账金额MONEY, 入账人 CHAR(10), 入账日期DATETIME)insert into单位代码表values (1122,采油厂);insert into单位代码表values (112201,采油一矿);insert into 单位

16、代码表values (112202,采油二矿);insert into 单位代码表values (112201001,采油一矿一队); insert into 单位代码表values (112201002,采油一矿二队); insert into 单位代码表values (112201003,采油一矿三队); insert into 单位代码表values (112202001,采油二矿一队);in sert into油水井表values (y001,油井,112201001);in sert into油水井表-可编辑修改-values (y002,油井,112201001);in sert

17、into油水井表values (y003,油井,112201002);in sert into油水井表values (S001,水井,112201002);in sert into油水井表values (y004,油井,112201003);in sert into油水井表values (S002,水井,112202001);in sert into油水井表values (S003,水井,112202001);in sert into油水井表values (y005,油井,112202002);insert into施工单位表insert into施工单位表values (作业公司作业二队);

18、insert into施工单位表values (作业公司作业三队);in sert into物码表values (wm001, 材料一,吨);in sert into物码表values (wm002, 材料二,米);in sert into物码表values (wm003, 材料三,桶);in sert into物码表values (wm004, 材料四,袋);insert into材料费表(单据号,物码,消耗数量,单价)values (zy2016001,wm001,200, 10);-可编辑修改-insert into材料费表(单据号,物码,消耗数量,单价)values (zy201600

19、1,wm002,200, 10);insert into材料费表(单据号,物码,消耗数量,单价)values (zy2016001,wm003,200, 10);insert into材料费表(单据号,物码,消耗数量,单价)values (zy2016003,wm001,200, 10);insert into材料费表(单据号,物码,消耗数量,单价)values (zy2016003,wm002,200, 10);insert into材料费表(单据号,物码,消耗数量,单价)values (zy2016003,wm003,250, 10);insert into材料费表(单据号,物码,消耗数量

20、,单价)values (zy2016004,wm001,200, 10);insert into材料费表(单据号,物码,消耗数量,单价)insert into材料费表(单据号,物码,消耗数量,单价)values (zy2016004,wm004,200, 10);insert into材料费表(单据号,物码,消耗数量,单价)values (zy2016005,wm001,200, 10);insert into材料费表(单据号,物码,消耗数量,单价)values (zy2016005,wm002,200, 10);insert into材料费表(单据号,物码,消耗数量,单价)values (z

21、y2016005,wm004,300, 10);in sert into作业项目表values(zy2016001,112201001,y001, 10000,张三,2016/5/1,2016/5/4,2016/5/23,作业公司作业一队,堵漏, 7000, 2500, 1000, 1400, 10900,王五,2016/5/26, 10900,王五,2016/5/28);in sert into作业项目表values (zy2016003,112201002,s001, 10500,张三,2016/5/1,-可编辑修改-2016/5/6,2016/5/23,作业公司作业二队,调剖, 6500

22、, 2000, 500, 1400, 10400,李四 ,2016/5/26, 10400,王五,2016/5/28);in sert into作业项目表values (zy2016004,112202001,s002, 12000,张三,2016/5/1,2016/5/4,2016/5/24,作业公司作业三队,解堵, 6000, 2000, 1000, 1600, 10600,李四,2016/5/26, 10600,赵六,2016/5/28);in sert into作业项目表values(zy2016005,112202002,y005, 12000,张三,2016/5/1,2016/5/

23、4,2016/5/28,作业公司作业三队,防砂, 7000, 1000, 2000, 1300, 11300,李四,2016/6/1,NULL,NULL,NULL);beg in tra nupdate 作业项目表set人工费=人工费+200where 单据号=zy2016005;update 作业项目表set结算金额=结算金额+200 where 单据号=zy2016005;deletefrom作业项目表where入账金额is NULL;rollback tra n-实验四-1create index预算日期索引on作业项目表(预算日期);create index结算日期索引on作业项目表(

24、结算日期);create index入账日期索引on作业项目表(入账日期);-select *from作业项目表预算单位=where预算日期 between 2016/5/1 and 2016/5/28 and(select单位代码from单位代码表where单位名称=采油一矿二队);-a no ther soluti onselect * from作业项目表,单位代码表where 单位代码=预算单位and单位名称=采油一矿二队and 预算日期between2016/5/1 and 2016/5/28;-select *from作业项目表where结算日期 between 2016/5/1 a

25、nd 2016/5/28 and预算单位 =(select单位代码from单位代码表where单位名称=采油一矿二队);-a no ther soluti on-select *-from作业项目表,单位代码表-where单位名称=采油一矿二队and 预算单位=单位代码and结算日期=2016-5-1and 结算日期 =2016-5-28;(3)select *from材料费表where 单据号=(select单据号-可编辑修改-from作业项目表where预算日期 between 2016/5/1 and 2016/5/28 and(select单位代码from单位代码表where单位名称=

26、采油一矿二队);|select *from作业项目表where入账日期 between 2016/5/1 and 2016/5/28 and(select单位代码from单位代码表where单位名称=采油一矿二队);(5)select ,sum(预算金额)预算金额总和from作业项目表where预算日期 between 2016/5/1 and 2016/5/28 and(select单位代码from单位代码表where单位名称=采油一矿二队);-(6)select ,sum(结算金额)结算金额总和预算单位=预算单位=预算单位=from作业项目表-可编辑修改-where结算日期 between

27、 2016/5/1 and 2016/5/28 and预算单位 =(select单位代码from单位代码表where单位名称=采油一矿二队);-select sum(入账金额)入账金额总和from作业项目表where入账日期 between 2016/5/1 and 2016/5/28 and预算单位 =(select单位代码from单位代码表where单位名称=采油一矿二队);-(8)select sum(入账金额)采油一矿入账金额总和from作业项目表,单位代码表where入账日期 between 2016/5/1 and 2016/5/28 and预算单位 =单位代码 and 单位名称l

28、ike 采油一矿%;-a no ther soluti onselect sum(入账金额)入账金额总和from作业项目表where入账日期 between 2016/5/1 and 2016/5/28 and预算单位 in(select单位代码where 单位名称like 采油一矿%);-(9)select dist inct 入账人from作业项目表where 入账人 is not null;-(10)select单据号from作业项目表where 结算日期 between 2016/5/1 and 2016/5/28 and结算金额 is not null and入账金额is n ull

29、;-(11)select单据号from作业项目表where 预算单位 =(select单位代码from单位代码表where单位名称=采油一矿二队)order by入账金额 desc;-(12)select施工单位表.施工单位名称,count(结算金额)项目个数,sum(结算金额)结算金额总和from 施工单位表left join 作业项目表on (施工单位表.施工单位名称=作业项目表.施工单位)-可编辑修改-group by 施工单位表.施工单位名称-(13)select *from材料费表where单据号=(select单据号from材料费表where物码=(select 物码from 物码

30、表where名称规格=材料三)and消耗数量*单价2000);-(14 )select dist inct单据号from作业项目表where施工单位=作业公司作业二队-(15)select dist inct单据号from作业项目表where施工单位=作业公司作业一队unionselect dist inct单据号where施工单位=作业公司作业二队-(16)select disti net 施工单位from作业项目表,油水井表,单位代码表where预算单位=单位代码表.单位代码and单位代码表.单位代码=油水井表.单位代码and单位名称like 采油一矿%;-a no ther soluti

31、 onselect disti net 施工单位from作业项目表where 井号 in( select 井号from油水井表where 单位代码 in ( select 单位代码from单位代码表where单位名称like 采油一矿%);drop in dex预算日期索引on作业项目表drop in dex结算日期索引on作业项目表;drop in dex入账日期索引on作业项目表;-3-(1)create table结算金额表(施工单位 char(20),年月 varchar(7),结算金额money);in sertinto结算金额表select 施工单位,convert(varchar

32、(7),结算日期,111),sum(结算金额)from作业项目表group by 施工单位,convert(varchar(7),结算日期,111);-a no ther soluti on-i nsert-into 结算金额表-select施工单位,丫EAR(结算日期)*100+MONTH(结算日期),sum(结算金额)-from 作业项目表-group by施工单位,YEAR(结算日期)*100+MONTH(结算日期);(3)beg in tra nupdate 作业项目表set结算人=李兵where预算单位in (select 单位代码where单位名称like 采油一矿% );dele

33、tefrom作业项目表where预算单位in (select 单位代码from单位代码表where单位名称like 采油一矿%);rollback-实验五alter table结算金额表add 备注 char(20);select *from结算金额表-(2)alter table结算金额表alter column施工单位 char(20) not null;alter table结算金额表-可编辑修改-alter column 年月 varchar(7) not null;alter table结算金额表add primary key(施工单位 ,年月);TRUNCATE TABLE结算金额

34、表in sertinto结算金额表(施工单位,年月,结算金额)select 施工单位,convert(varchar(7),结算日期,111),sum(结算金额)from作业项目表group by施工单位,convert(varchar(7), 结算日期,111);deletefrom结算金额表;delete结算金额表;-2alter table材料费表alter column 单据号 char(20) not null;alter table材料费表alter column 物码 char(20) not null;alter table 材料费表add primary key (单据号,物

35、码);alter table作业项目表alter column单据号 char(20) not null;alter table作业项目表add primary key ( 单据号);alter table单位代码表alter column单位代码 char(20) not null;alter table单位代码表add primary key ( 单位代码);alter table施工单位表alter colum n施工单位名称 char(20) not null;alter table施工单位表add primary key (施工单位名称);-可编辑修改-alter table 物码表

36、alter column 物码 char(20) not null;alter table 物码表add primary key ( 物码);alter table 油水井表alter column 井号 char(20) not NUll;alter table 油水井表add primary key ( 井号);begi n tra nin sertinto材料费表values(zy2016001,wm004,100,10);in sertinto材料费表values(zy2016002,NULL,200,10);rollback-(2)alter table材料费表alter table

37、 材料费表add con stra int a2 foreig n key (物码)references物码表(物码);alter table 作业项目表add con stra int b1 foreig n key(预算单位)references单位代码表(单位代码);alter table作业项目表add con stra int b2 foreig n key(井号)refere nces油水井表(井号);alter table作业项目表add con stra int b3 foreig n key(施工单位)references施工单位表(施工单位名称);in sert into油

38、水井表values (y007,油井,112203002);insert in to材料费表values(zy2016007,wm006,100,10);beg in tra n-可编辑修改-update 作业项目表set施工单位=作业公司作业五队where 单据号 =zy2016001;deletefrom单位代码表where 单位代码=112202002;update 物码表set 物码=wm04where名称规格=材料四:rollback tra n-(3)alter table单位代码表add constraint aa1 check ( 单位名称 is notn ull );alte

39、r table单位代码表add constraint uni unique(单位代码);alter table油水井表alter table 油水井表alter column单位代码 char(20) not null;alter table 物码表altercolumn 名称规格 char(20) not null;alter table 物码表add constraint uni2 unique(名称规格);alter table 物码表altercolumn 计量单位 char(20) not null;alter table 材料费表alter column消耗数量 int not n

40、ull ;alter table 材料费表alter column 单价 int not null ;alter table作业项目表add constraint asdaf check ( 材料费+人工费+设备费+其他费用 =结算金额);-可编辑修改-create view 视图一asselect作业项目表.*,物码,消耗数量,单价from作业项目表,材料费表where作业项目表.单据号=材料费表.单据号;-select结算金额,消耗数量from视图一where 物码=wm003;select预算单位,施工内容from视图一where 单据号 =zy2016001 and 物码 =wm001

41、;-(3)create view 预算状态asselect单据号,预算单位,井号,预算金额,预算人,预算日期from作业项目表beg in tra nin sert into预算状态values (zy2016008,112202002,y005, 10000,张三,2016-07-02);rollback tra n-实验六-1beg in tra ngoin sert into作业项目表 values(zy2016006,112202002,y005,10000,张三,07-01-2016 ,07-04-2016,07-25-2016,作业公司作业一队,堵漏,7000,2500,1000,

42、1400,11900,李四,07-26-2016,11900,王五,07-28-2016)insert into材料费表values(zy2016006,wm001,200,10)insert into材料费表values(zy2016006,wm002,200,10)insert into材料费表values(zy2016006,wm003,200,10)insert into材料费表values(zy2016006,wm004,100,10)if error0beginprint语句执行失败rollbackendelsebeginprint语句执行成功commitend-2beg in t

43、ra ndeclare yb cursor forselect *from作业项目表ope n ybdeclare 单据号 varchar(20)declare 预算单位 varchar(20)declare 井号 varchar(20)declare 预算金额 varchar(20)declare 预算人 varchar(20)declare 预算日期 varchar(20)declare 开工日期 varchar(20)declare 完工日期 varchar(20) declare 施工单位 varchar(20) declare 施工内容 varchar(20) declare 材料费

44、 varchar(20) declare 人工费 varchar(20) declare 设备费 varchar(20) declare 其它费用 varchar(20) declare 结算金额 varchar(20) declare 结算人 varchar(20) declare 结算日期 varchar(20) declare 入账金额 varchar(20) declare 入账人 varchar(20) declare 入账日期 varchar(20) print 单据号+预算单位+井号+预算金额+预算人+预算日期+开工日期+完工日期+施工单位+施工内容+ 材料费+人工费+设备费+其

45、它费用+结算金额+结算人+结算日期+入账金额+入账人+入账日期 fetch n ext from yb into 单据号,预算单位,井号,预算金额,预算人,预算日期,开工日期,完工日期,施工单位,施工内容 材料费,人工费,设备费,其它费用,结算金额,结算人,结算日期,入账金额,入账人,入账日期while(fetch_status = 0)beginpri nt单据号+ +预算单位+ +井号 + +预算金额+ +预算人 + +预算日期+ +开工日期+ +-可编辑修改-I Y竟谟I WWMOMqA luojj ;xeu ip冋LjtSY | +.+ YY + WWY + 暗竟黔 | + Y竟霧 +

46、.+ 屢琴竟黔) J. +宙番已甘空 | +.+ 番男强+i i+ 豊工| +i 1+ EM工團 + WTW + 暗工琴预算日期,开工日期,完工日期,施工单位,施工内容,材料费,人工费,设备费,其它费用,结算金额,结算人,结算日期,入账金额,入账人,入账日期;end-3if object_id(_someDepCost,p) is not n ull drop procedure _someDepCost;gocreate procedure _someDepCost单位代码 varchar(40).起始日期datetime,结束日期 datetimeasdeclare 单位名称 varcha

47、r(40);declare 预算金额 money,结算金额money,入账金额money,未结算金额mo ney,|未入账金额 mo ney;select 单位名称=单位名称from 单位代码表where单位代码=单位代码set 预算金额 =(select sum( 预算金额)from 作业项目表where 预算单位like 单位代码+ % and (预算日期between 起始日期and 结束日期) set 结算金额 =(select sum( 结算金额)from 作业项目表where 预算单位like 单位代码+ % and (结算日期between 起始日期and 结束日期) set 入

48、账金额 =(select sum( 入账金额)from 作业项目表where 预算单位like 单位代码+ % and (入账日期between 起始日期and 结束日期)and(入账金额is not null)set 未结算金额 =(select sum(预算金额)from 作业项目表 where (结算金额is null) and (预算日期 between 起始日期and 结束日期)set 未入账金额 =(select sum(结算金额)from 作业项目表 where (入账金额is null) and (结算日期 between 起始日期and 结束日期)set 未结算金额=预算金额

49、-结算金额set 未入账金额=结算金额-入账金额if 预算金额is null set 预算金额 =0if 结算金额is null set 结算金额 =0 if 入账金额is null set 入账金额 =0 if 未结算金额is null set 未结算金额 =0 if 未入账金额is nullset 未入账金额=0 declare result varchar(IOO)set result = convert(varchar,预算金额)+ +convert(varchar,结算金额)+convert(varchar,入账金额)+ +convert(varchar,未结算金额)+ +conve

50、rt(varchar,入账金额)print 单位名称 +单位+convert(varchar,起始日期,102)+-+convert(varchar,结束日期,102)+成本运营状况print 预算金额结算金额入账金额未结算金额未入账金额pr int resultgoexecute _someDepCost 单位代码 =1122, 起始日期 =2016-5-1, 结束日期 =2016-5-29;execute _someDepCost 单位代码 =112201, 起始日期 =2016-5-1, 结束日期 =2016-5-29;execute _someDepCost 单位代码 =112201001, 起始日期 =2016-5-1, 结束日期2016-5-29;go-4-if OBJECT_ID(trmytr1,TR) is not nulldrop trigger tr_mytrlgocreate trigger trm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论