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

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-1'AND 入账日期<='2016-5-28' AND 预算金额 IS NOT NULL AND 预算日期 IS NOT NULL AND 预算人 IS NOT NULL;

SELECT DISTINCT * FROM COST,UNITNO

WHERE 单位名称='采油一矿二队'AND 预算单位=单位代码 AND 入账日期>='2016-5-1'AND 入账日期<='2016-5-28' AND 结算金额 IS NOT NULL AND 结算人 IS NOT NULL AND 结算日期 IS NOT NULL;

SELECT DISTINCT MATERIALPRICE.单据号,物码,消耗数量,单价 FROM COST,MATERIALPRICE,UNITNO

WHERE 单位名称='采油一矿二队'AND 预算单位=单位代码 AND 入账日期>='2016-5-1'AND 入账日期<='2016-5-28'AND MATERIALPRICE.单据号=COST.单据号;

SELECT DISTINCT * FROM COST,UNITNO

WHERE 单位名称='采油一矿二队'AND 预算单位=单位代码 AND 入账日期>='2016-5-1'AND 入账日期<='2016-5-28' AND 入账金额 IS NOT NULL AND 入账人 IS NOT NULL AND 入账

日期 IS NOT NULL;

SELECT 预算总额=SUM(DISTINCT 预算金额) FROM UNITNO,COST

WHERE 单位名称='采油一矿二队'AND 预算单位=单位代码 AND 入账日期>='2016-5-1'AND 入账日期<='2016-5-28';

SELECT 结算总额=SUM(DISTINCT 结算金额) FROM UNITNO,COST

WHERE 单位名称='采油一矿二队'AND 预算单位=单位代码 AND 入账日期>='2016-5-1'AND 入账日期<='2016-5-28';

SELECT 入账总额=SUM(DISTINCT 入账金额) FROM UNITNO,COST

WHERE 单位名称='采油一矿二队'AND 预算单位=单位代码 AND 入账日期>='2016-5-1'AND 入账日期<='2016-5-28';

SELECT 一矿入账总额=SUM(DISTINCT 入账金额) FROM UNITNO,COST

WHERE 单位名称 LIKE '采油一矿%'AND 预算单位=单位代码 AND 入账日期>='2016-5-1'AND 入账日期<='2016-5-28';

SELECT DISTINCT 入账人 FROM COST

WHERE 入账人 IS NOT NULL;

SELECT DISTINCT 单据号 FROM COST

WHERE 结算日期>='2016-5-1' AND 结算日期<='2016-5-28' AND 入账金额 IS NULL AND 结算金额 IS NOT NULL ;

SELECT DISTINCT 单据号,入账金额 FROM COST,UNITNO

WHERE 单位名称='采油一矿二队'AND 预算单位=单位代码 ORDER BY 入账金额 DESC;

SELECT 单位名称,结算金额总和=SUM(DISTINCT 结算金额),项目数=COUNT(DISTINCT 结算金额)

FROM COST,UNITNO

WHERE 预算单位=单位代码

GROUP BY 单位名称;

SELECT distinct 单据号,物码,消耗数量,单价 FROM MATERIALPRICE WHERE 物码 IN( SELECT 物码 FROM GOODSNO

WHERE 名称规格='材料三') 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 单位代码

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4