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 单位代码