中国石油大学(华东)数据库原理实验答案(sql语句) 下载本文

内容发布更新时间 : 2024/11/8 4:42:37星期一 下面是文章的全部内容请认真阅读。

AS

SELECT COST.*,物码,消耗数量,单价 FROM COST,MATERIALPRICE

where COST.单据号=MATERIALPRICE.单据号;

SELECT 单据号,物码 FROM COST_PRICE WHERE 物码='wm002';

SELECT 单据号,单价 FROM COST_PRICE

WHERE 单据号='ZY2016001'and 物码='wm001'; GO

CREATE VIEW YUSUAN AS

SELECT 单据号,预算单位,井号,预算金额,预算人,预算日期 FROM COST;

INSERT

INTO YUSUAN

VALUES('zy2016008','112202002','y005',10000,'张三', '2016-07-02');

ROLLBACK */

实验六

BEGINTRANSACTION

INSERTINTO COST VALUES('zy2016006','112202002','y005',10000,'张三','07-01-2016','07-04-2016','07-25-2016','作业公司作业一队','堵漏

',7000,2500,1000,1400,11900,'李四','07-26-2016',11900,'王五','07-28-2016'); IF@@ERROR<>0 BEGIN

PRINT'第一条插入出错' ROLLBACK END ELSE BEGIN

PRINT'第一条插入成功' COMMITTRANSACTION END

BEGINTRANSACTION

insertinto MATERIALPRICE values('zy2016006','wm001',200,10); IF@@ERROR<>0 BEGIN

PRINT'第二条插入出错' ROLLBACK END ELSE BEGIN

PRINT'第二条插入成功' COMMITTRANSACTION END

BEGINTRANSACTION

insertinto MATERIALPRICE values('zy2016006','wm002',200,10); IF@@ERROR<>0 BEGIN

PRINT'第三条插入出错' ROLLBACK END ELSE BEGIN

PRINT'第三条插入成功' COMMITTRANSACTION END

BEGINTRANSACTION

insertinto MATERIALPRICE values('zy2016006','wm003',200,10); IF@@ERROR<>0 BEGIN

PRINT'第四条插入出错' ROLLBACK END ELSE BEGIN

PRINT'第四条插入成功' COMMITTRANSACTION END

BEGINTRANSACTION

insertinto MATERIALPRICE values('zy2016006','wm004',100,10); IF@@ERROR<>0 BEGIN

PRINT'第五条插入出错' ROLLBACK END ELSE BEGIN

PRINT'第五条插入成功' COMMITTRANSACTION END

BEGINTRANSACTION

DECLARE COST_CUR SCROLLCURSOR FORSELECT* FROM COST;

OPEN COST_CUR;

DECLARE @单据号 VARCHAR(20) DECLARE @预算单位 VARCHAR(20) DECLARE @井号 VARCHAR(20) DECLARE @预算金额 FLOAT DECLARE @预算人 VARCHAR(20) DECLARE @预算日期 DATE DECLARE @开工日期 DATE DECLARE @完工日期 DATE

DECLARE @施工单位 VARCHAR(30) DECLARE @施工内容 VARCHAR(50) DECLARE @材料费 FLOAT DECLARE @人工费 FLOAT DECLARE @设备费 FLOAT DECLARE @其他费用 FLOAT DECLARE @结算金额 FLOAT DECLARE @结算人 VARCHAR(20) DECLARE @结算日期 DATE DECLARE @入账金额 FLOAT DECLARE @入账人 VARCHAR(20) DECLARE @入账日期 DATE

PRINT'单据号 '+'预算单位 '+'井号 '+'预算金额 '+'预算人'+' 预算日期' +' 开工日期'+' 完工日期'+' 施工单位'+'施工内容'+'材料费'+' 人工费' +' 设备费'+' 其它费用'+' 结算金额'+' 结算人'+'结算日期'+' 入账金额' +' 入账人'+' 入账日期'

FETCHFIRSTFROM COST_CRU

INTO @单据号,@预算单位,@井号,@预算金额,@预算人,@预算日期, @开工日期,@完工日期,@施工单位,@施工内容,@材料费,@人工费,

@设备费,@其他费用,@结算金额,@结算人,@结算日期,@入账金额,@入账人,@入账日期

WHILE(@@FETCH_STATUS=0) BEGIN

PRINT+@单据号+@预算单位 +@井号 +@预算金额 +' '+@预算人+' '+@预算日期 +' '+@开工日期 +' '+@完工日期 +' '+@施工单位 +' '+@施工内容 +@材料费+@人工费 +@设备费

+@其他费用 +@结算金额 +' '+@结算人 +' '+@结算日期 +@入账金额 +' '+@入账人 +@入账日期

FETCHNEXTFROM COST_CRU INTO

@单据号,@预算单位,@井号,@预算金额,@预算人,@预算日期,

@开工日期,@完工日期,@施工单位,@施工内容,@材料费,@人工费,

@设备费,@其他费用,@结算金额,@结算人,@结算日期,@入账金额,@入账人,@入账日期 END ;

ifOBJECT_ID('YUNXING_SITU','p')isnotnull dropprocedure YUNXING_SITU; go

CREATEPROCEDURE YUNXING_SITU

@DANWEIDAIMA VARCHAR(30),@STARTTIME DATE,@ENDTIME DATE AS

DECLARE @DANWEIMING VARCHAR(30);

DECLARE @YSMONEY money,@JSMONEY money,@RZMONEY money, @NOJSMONEY money,@NORUZHANGMONEY money;

SELECT @DANWEIMING='单位名称' FROM UNITNO

WHERE @DANWEIDAIMA='单位代码' SET

@YSMONEY=(SELECTSUM(预算金额) FROM COST

WHERE 预算单位 LIKE @DANWEIDAIMA+'%'AND

预算日期 BETWEEN @STARTTIME AND @ENDTIME and 预算金额 isnotnull) SET

@JSMONEY=(SELECTSUM(结算金额)FROM COST WHERE 预算单位 LIKE @DANWEIDAIMA+'%'AND