2023年石油大学华东数据库原理实验超详细解析超详细解析超详细解析答案sql语句.pdf
实验三/*CREATE TABLE UNITNO(单位代码 VARCHAR(20),单位名称 VARCHAR(30);CREATE TABLE OILWELL(井号 VARCHAR(20),井别 VARCHAR(20),单位代码 VARCHAR(20),);CREATE TABLE CONSTRUCTIONUNIT(施工单位名称 VARCHAR(30);CREATE TABLE GOODSNO(物码 VARCHAR(20),名称规格 VARCHAR(30),计量单位 VARCHAR(20);CREATE TABLE COST(单据号 VARCHAR(20),预算单位 VARCHAR(20),井号 VARCHAR(20),预算金额 FLOAT,预算人 VARCHAR(20),预算日期 DATE,开工日期 DATE,完工日期 DATE,施工单位 VARCHAR(30),施工内容 VARCHAR(50),材料费 FLOAT,人工费 FLOAT,设备费 FLOAT,其他费用 FLOAT,结算金额 FLOAT,结算人 VARCHAR(20),结算日期 DATE,入账金额 FLOAT,入账人 VARCHAR(20),入账日期 DATE );CREATE TABLE MATERIALPRICE(单据号 VARCHAR(20),物码 VARCHAR(20),消耗数量 BIGINT,单价 FLOAT );*/*INSERT INTO UNITNO(单位代码,单位名称)VALUES(1122,采油厂);INSERT INTO UNITNO(单位代码,单位名称)VALUES(112201,采油一矿);INSERT INTO UNITNO(单位代码,单位名称)VALUES(112202,采油二矿);INSERT INTO UNITNO(单位代码,单位名称)VALUES(112201001,采油一矿一队);INSERT INTO UNITNO(单位代码,单位名称)VALUES(112201002,采油一矿二队);INSERT INTO UNITNO(单位代码,单位名称)VALUES(112201003,采油一矿三队);INSERT INTO UNITNO(单位代码,单位名称)VALUES(112202001,采油二矿一队);INSERT INTO UNITNO(单位代码,单位名称)VALUES(112202002,采油二矿二队);INSERT INTO OILWELL(井号,井别,单位代码)VALUES(y001,油井,112201001);INSERT INTO OILWELL(井号,井别,单位代码)VALUES(y002,油井,112201001);INSERT INTO OILWELL(井号,井别,单位代码)VALUES(y003,油井,112201002);INSERT INTO OILWELL(井号,井别,单位代码)VALUES(s001,水井,112201002);INSERT INTO OILWELL(井号,井别,单位代码)VALUES(y004,油井,112201003);INSERT INTO OILWELL(井号,井别,单位代码)VALUES(s002,水井,112201001);INSERT INTO OILWELL(井号,井别,单位代码)VALUES(s003,水井,112201001);INSERT INTO OILWELL(井号,井别,单位代码)VALUES(y005,油井,112201002);INSERT INTO CONSTRUCTIONUNIT(施工单位名称)VALUES(作业公司作业一队);INSERT INTO CONSTRUCTIONUNIT(施工单位名称)VALUES(作业公司作业二队);INSERT INTO CONSTRUCTIONUNIT(施工单位名称)VALUES(作业公司作业三队);INSERT INTO GOODSNO(物码,名称规格,计量单位)VALUES(wm001,材料一,吨);INSERT INTO GOODSNO(物码,名称规格,计量单位)VALUES(wm002,材料二,米);INSERT INTO GOODSNO(物码,名称规格,计量单位)VALUES(wm003,材料三,桶);INSERT INTO GOODSNO(物码,名称规格,计量单位)VALUES(wm004,材料四,袋);INSERT INTO COST(单据号,预算单位,井号,预算金额,预算人,预算日期,开工日期,完工日期,施工单位,施工内容,材料费,人工费,设备费,其他费用,结算金额,结算人,结算日期,入账金额,入账人,入账日期)VALUES(ZY2016001,112201001,y001,10000.00,张三,2016-5-1,2016-5-4,2016-5-25,作业公司作业一队,堵漏,7000.00,2500.00,1000.00,1400.00,11900.00,李四,2016-5-26,11900.00,王五,2016-5-28);INSERT INTO COST(单据号,预算单位,井号,预算金额,预算人,预算日期,开工日期,完工日期,施工单位,施工内容,材料费,人工费,设备费,其他费用,结算金额,结算人,结算日期,入账金额,入账人,入账日期)VALUES(ZY2016002,112201002,y003,11000.00,张三,2016-5-1,2016-5-4,2016-5-23,作业公司作业二队,入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格 检泵,6000.00,1500.00,1000.00,2400.00,10900.00,李四,2016-5-26,10900.00,王五,2016-5-28);INSERT INTO COST(单据号,预算单位,井号,预算金额,预算人,预算日期,开工日期,完工日期,施工单位,施工内容,材料费,人工费,设备费,其他费用,结算金额,结算人,结算日期,入账金额,入账人,入账日期)VALUES(ZY2016003,112201002,s001,10500.00,张三,2016-5-1,2016-5-6,2016-5-23,作业公司作业二队,调剖,6500.00,2000.00,500.00,1400.00,10400.00,李四,2016-5-26,10400.00,王五,2016-5-28);INSERT INTO COST(单据号,预算单位,井号,预算金额,预算人,预算日期,开工日期,完工日期,施工单位,施工内容,材料费,人工费,设备费,其他费用,结算金额,结算人,结算日期,入账金额,入账人,入账日期)VALUES(ZY2016004,112202001,s002,12000.00,张三,2016-5-1,2016-5-4,2016-5-24,作业公司作业三队,解堵,6000.00,2000.00,1000.00,1600.00,10600.00,李四,2016-5-26,10600.00,赵六,2016-5-28);INSERT INTO COST(单据号,预算单位,井号,预算金额,预算人,预算日期,开工日期,完工日期,施工单位,施工内容,材料费,人工费,设备费,其他费用,结算金额,结算人,结算日期)VALUES(ZY2016005,112202002,y005,12000.00,张三,2016-5-1,2016-5-4,2016-5-28,作业公司作业三队,防砂,7000.00,1000.00,2000.00,1300.00,11300.00,李四,2016-6-1);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016001,wm001,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016001,wm002,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016001,wm003,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016001,wm004,100,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016002,wm001,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016002,wm002,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016002,wm003,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格价)VALUES(ZY2016003,wm001,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016003,wm002,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016003,wm003,250,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016004,wm001,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016004,wm002,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016004,wm004,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016005,wm001,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016005,wm002,200,10.00);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(ZY2016005,wm004,300,10.00);UPDATE COST SET 人工费=人工费+200.00,结算金额=结算金额+200.00 WHERE 单据号=zy2016005;DELETE FROM COST WHERE 入账金额 IS NULL OR 入账人 IS NULL OR 入账日期 IS NULL;BEGIN TRAN UPDATE COST SET 人工费=人工费+200.00,结算金额=结算金额+200.00 WHERE 单据号=zy2016005;DELETE FROM COST WHERE 入账金额 IS NULL OR 入账人 IS NULL OR 入账日期 IS NULL;入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格ROLLBACK TRAN 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格 实验四 CREATE INDEX yDATE ON COST(预算日期);CREATE INDEX jDATE ON COST(结算日期);CREATE INDEX rDATE ON COST(入账日期);SELECT DISTINCT*FROM COST,UNITNO WHERE 单位名称=采油一矿二队AND 预算单位=单位代码 AND 入账日期=2016-5-1AND 入账日期=2016-5-1AND 入账日期=2016-5-1AND 入账日期=2016-5-1AND 入账日期=2016-5-1AND 入账日期=2016-5-1AND 入账日期=2016-5-1AND 入账日期=2016-5-1AND 入账日期=2016-5-1 AND 结算日期=2000;SELECT DISTINCT 单据号 FROM COST WHERE 施工单位=作业公司作业二队;SELECT 单据号,施工单位 FROM COST WHERE 施工单位=作业公司作业二队 UNION SELECT 单据号,施工单位 FROM COST WHERE 施工单位=作业公司作业一队;SELECT DISTINCT 施工单位 FROM COST,OILWELL,UNITNO WHERE 预算单位=UNITNO.单位代码 AND UNITNO.单位代码=OILWELL.单位代码 AND 单位名称 LIKE 采油一矿%;CREATE TABLE 数据表(施工单位 VARCHAR(30),年月 VARCHAR(20),结算金额 FLOAT );INSERT INTO 数据表(施工单位,年月,结算金额)(SELECT 施工单位,YEAR(结算日期)*100+MONTH(结算日期),SUM(结算金额)FROM COST GROUP BY 施工单位,YEAR(结算日期)*100+MONTH(结算日期);UPDATE COST SET 结算人=李兵 WHERE 预算单位 IN(SELECT 单位代码 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格 FROM UNITNO WHERE 单位代码=预算单位 AND 单位名称 Like 采油一矿%);DELETE FROM COST WHERE 预算单位 IN (SELECT 单位代码 FROM UNITNO WHERE 单位代码=预算单位 AND 单位名称 Like 采油一矿%);BEGIN TRAN UPDATE COST SET 结算人=李兵 WHERE 预算单位 IN(SELECT 单位代码 FROM UNITNO WHERE 单位代码=预算单位 AND 单位名称 Like 采油一矿%);DELETE FROM COST WHERE 预算单位 IN(SELECT 单位代码 FROM UNITNO WHERE 单位代码=预算单位 AND 单位名称 Like 采油一矿%);ROLLBACK TRAN DROP INDEX yDATE ON COST;DROP INDEX jDATE ON COST;DROP INDEX rDATE ON COST;实验五 ALTER TABLE 数据表 ADD 备注 CHAR;SELECT*入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格 FROM 数据表;ALTER TABLE 数据表 ALTER COLUMN 施工单位 VARCHAR(30)NOT NULL;ALTER TABLE 数据表 ADD PRIMARY KEY(施工单位);DELETE FROM 数据表;DROP TABLE 数据表;ALTER TABLE UNITNO ALTER COLUMN 单位代码 VARCHAR(20)NOT NULL;ALTER TABLE UNITNO ADD CONSTRAINT UNI_NUM PRIMARY KEY(单位代码);ALTER TABLE OILWELL ALTER COLUMN 井号 VARCHAR(20)NOT NULL;ALTER TABLE OILWELL ADD CONSTRAINT WELL_NUM PRIMARY KEY(井号);ALTER TABLE GOODSNO ALTER COLUMN 物码 VARCHAR(20)NOT NULL;ALTER TABLE GOODSNO ADD CONSTRAINT GOOD_NUM PRIMARY KEY(物码);ALTER TABLE COST ALTER COLUMN 单据号 VARCHAR(20)NOT NULL;ALTER TABLE COST ADD CONSTRAINT COST_NUM PRIMARY KEY(单据号);ALTER TABLE MATERIALPRICE ALTER COLUMN 单据号 VARCHAR(20)NOT NULL;ALTER TABLE MATERIALPRICE ALTER COLUMN 物码 VARCHAR(20)NOT NULL;ALTER TABLE MATERIALPRICE ADD PRIMARY KEY(单据号,物码);ALTER TABLE CONSTRUCTIONUNIT ALTER COLUMN 施工单位名称 VARCHAR(30)NOT NULL;ALTER TABLE CONSTRUCTIONUNIT ADD CONSTRAINT UNI_NAME PRIMARY KEY(施工单位名称);入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格 INSERT INTO MATERIALPRICE VALUES(zy2016001,wm004,100,10);INSERT INTO MATERIALPRICE VALUES(zy2016002,NULL,200,10);ALTER TABLE OILWELL ALTER COLUMN 单位代码 VARCHAR(20)NOT NULL;ALTER TABLE OILWELL ADD CONSTRAINT UNI_NUM2 FOREIGN KEY(单位代码)REFERENCES UNITNO(单位代码);ALTER TABLE COST ALTER COLUMN 井号 VARCHAR(20)NOT NULL;ALTER TABLE COST ADD CONSTRAINT WELL_NUM2 FOREIGN KEY(井号)REFERENCES OILWELL(井号);ALTER TABLE MATERIALPRICE ALTER COLUMN 物码 VARCHAR(20)NOT NULL;ALTER TABLE MATERIALPRICE ADD CONSTRAINT GOOD_NUM2 FOREIGN KEY(物码)REFERENCES GOODSNO(物码);INSERT INTO OILWELL(井号,井别,单位代码)VALUES(y007,油井,112203002);INSERT INTO MATERIALPRICE(单据号,物码,消耗数量,单价)VALUES(zy2016007,wm006,100,10.00);UPDATE COST SET 施工单位=作业公司作业五队 WHERE 单据号=ZY2016001;DELETE FROM UNITNO WHERE 单位名称=采油二矿二队 AND 单位代码=112202002;UPDATE GOODSNO SET 物码=wm04 WHERE 物码=wm004;BEGIN TRAN 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格 UPDATE COST SET 施工单位=作业公司作业五队 WHERE 单据号=ZY2016001;DELETE FROM UNITNO WHERE 单位名称=采油二矿二队 AND 单位代码=112202002;UPDATE GOODSNO SET 物码=wm04 WHERE 物码=wm004;ROLLBACK TRAN ALTER TABLE UNITNO ALTER COLUMN 单位名称 VARCHAR(30)NOT NULL;ALTER TABLE UNITNO ADD UNIQUE(单位名称);ALTER TABLE OILWELL ALTER COLUMN 单位代码 VARCHAR(20)NOT NULL;ALTER TABLE OILWELL ADD CONSTRAINT OIL_CHECK CHECK(井别 IN(油井,水井);ALTER TABLE GOODSNO ALTER COLUMN 名称规格 VARCHAR(30)NOT NULL;ALTER TABLE GOODSNO ADD UNIQUE(名称规格);ALTER TABLE GOODSNO ALTER COLUMN 计量单位 VARCHAR(20)NOT NULL;ALTER TABLE MATERIALPRICE ALTER COLUMN 消耗数量 BIGINT NOT NULL;ALTER TABLE MATERIALPRICE ALTER COLUMN 单价 FLOAT NOT NULL;ALTER TABLE COST ALTER COLUMN 预算人 VARCHAR(20)NOT NULL;BEGIN TRANSACTION GO CREATE VIEW COST_PRICE 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格AS SELECT COST.*,物码,消耗数量,单价 FROM COST,MATERIALPRICE where COST.单据号=MATERIALPRICE.单据号;SELECT 单据号,物码 FROM COST_PRICE WHERE 物码=wm002;SELECT 单据号,单价 FROM COST_PRICE WHERE 单据号=ZY2016001and 物码=wm001;GO CREATE VIEW YUSUAN AS SELECT 单据号,预算单位,井号,预算金额,预算人,预算日期 FROM COST;INSERT INTO YUSUAN VALUES(zy2016008,112202002,y005,10000,张三,2016-07-02);ROLLBACK*/实验六 BEGIN TRANSACTION INSERT INTO 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 ERROR0 BEGIN PRINT 第一条插入出错 ROLLBACK END ELSE BEGIN 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格PRINT 第一条插入成功 COMMIT TRANSACTION END BEGIN TRANSACTION insert into MATERIALPRICE values(zy2016006,wm001,200,10);IF ERROR0 BEGIN PRINT 第二条插入出错 ROLLBACK END ELSE BEGIN PRINT 第二条插入成功 COMMIT TRANSACTION END BEGIN TRANSACTION insert into MATERIALPRICE values(zy2016006,wm002,200,10);IF ERROR0 BEGIN PRINT 第三条插入出错 ROLLBACK END ELSE BEGIN PRINT 第三条插入成功 COMMIT TRANSACTION END BEGIN TRANSACTION insert into MATERIALPRICE values(zy2016006,wm003,200,10);IF ERROR0 BEGIN PRINT 第四条插入出错 ROLLBACK END ELSE BEGIN PRINT 第四条插入成功 COMMIT TRANSACTION END BEGIN TRANSACTION 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格insert into MATERIALPRICE values(zy2016006,wm004,100,10);IF ERROR0 BEGIN PRINT 第五条插入出错 ROLLBACK END ELSE BEGIN PRINT 第五条插入成功 COMMIT TRANSACTION END BEGIN TRANSACTION DECLARE COST_CUR SCROLL CURSOR FOR SELECT *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 单据号 +预算单位 +井号 +预算金额 +预算人+预算日期 +开工日期+完工日期+施工单位+施工内容+材料费+人工费 +设备费+其它费用+结算金额+结算人+结算日期+入账金额 +入账人+入账日期 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格 FETCH FIRST FROM COST_CRU INTO 单据号,预算单位,井号,预算金额,预算人,预算日期,开工日期,完工日期,施工单位,施工内容,材料费,人工费,设备费,其他费用,结算金额,结算人,结算日期,入账金额,入账人,入账日期 WHILE(FETCH_STATUS=0)BEGIN PRINT +单据号+预算单位+井号+预算金额+预算人+预算日期+开工日期+完工日期+施工单位 +施工内容+材料费+人工费+设备费+其他费用+结算金额+结算人+结算日期+入账金额+入账人+入账日期 FETCH NEXT FROM COST_CRU INTO 单据号,预算单位,井号,预算金额,预算人,预算日期,开工日期,完工日期,施工单位,施工内容,材料费,人工费,设备费,其他费用,结算金额,结算人,结算日期,入账金额,入账人,入账日期 END ;if OBJECT_ID(YUNXING_SITU,p)is not null drop procedure YUNXING_SITU;go CREATE PROCEDURE 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=(SELECT SUM(预算金额)FROM COST WHERE 预算单位 LIKE DANWEIDAIMA+%AND 预算日期 BETWEEN STARTTIME AND ENDTIME and 预算金额 is not null)SET JSMONEY=(SELECT SUM(结算金额)FROM COST WHERE 预算单位 LIKE DANWEIDAIMA+%AND 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格 结算日期 BETWEEN STARTTIME AND ENDTIME and 结算金额 is not null)SET RZMONEY=(SELECT SUM(入账金额)FROM COST WHERE 预算单位 LIKE DANWEIDAIMA+%AND 入账日期 BETWEEN STARTTIME AND ENDTIME AND 入账人 IS NOT NULL)SET NOJSMONEY=(SELECT SUM(预算金额)FROM COST WHERE 预算日期 BETWEEN STARTTIME AND ENDTIME AND 结算金额 IS NULL)SET NORUZHANGMONEY=(SELECT SUM(结算金额)FROM COST WHERE 结算日期 BETWEEN STARTTIME AND ENDTIME AND 入账人 IS NULL)IF YSMONEY IS NULL SET YSMONEY=0 IF JSMONEY IS NULL SET JSMONEY=0 IF RZMONEY IS NULL SET RZMONEY=0 IF NOJSMONEY IS NULL SET NOJSMONEY=0 IF NORUZHANGMONEY IS NULL SET NORUZHANGMONEY=0 SET NOJSMONEY=YSMONEY-JSMONEY SET NORUZHANGMONEY=JSMONEY-RZMONEY /*DECLARE RESULT VARCHAR(100)SET RESULT=CONVERT(VARCHAR,YSMONEY)+CONVERT(VARCHAR,JSMONEY)+CONVERT(VARCHAR,RZMONEY)+CONVERT(VARCHAR,NOJSMONEY)+CONVERT(VARCHAR,NORUZHANGMONEY)PRINT DANWEIMING+单位+CONVERT(VARCHAR,STARTTIME,102)+-+CONVERT(VARCHAR,ENDTIME,102)+成本运行情况 PRINT 预算金额 结算金额 入账金额 未结算金额 未入账金额 PRINT RESULT*/print DANWEIMING+convert(varchar,STARTTIME,102)+-+convert(varchar,ENDTIME,102)+成本运营情况 print 预算金额结算金额入账金额未结算金额未入账金额 print convert(varchar,YSMONEY)+convert(varchar,JSMONEY)+convert(varchar,RZMONEY)+convert(varchar,NOJSMONEY)+convert(varchar,NORUZHANGMONEY);GO 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格EXECUTE YUNXING_SITU DANWEIDAIMA=1122,STARTTIME=2016-5-1,ENDTIME=2016-5-29;EXECUTE YUNXING_SITU DANWEIDAIMA=112201,STARTTIME=2016-5-1,ENDTIME=2016-5-29;EXECUTE YUNXING_SITU DANWEIDAIMA=112201001,STARTTIME=2016-5-1,ENDTIME=2016-5-29;GO 入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单位代码单位名称采油一矿单位代码单位名称采油位名称采油二矿一队单位代码单位名称采油二矿二队井号井别单位代码油井井号井别单位代码油井井号井别单位代码码油井施工单位名称作业公司作业一队施工单位名称作业公司作业二队施工单位名称作业公司作业三队物码名称规格入账人入账日期单据号物码消耗数量单价单位代码单位名称采油厂单