数据库之建表

新建一个数据库,命名为zyxt,并有以下要求:

⑴ 该数据库记录某采油厂对油/水井实施作业时所消耗的成本。(作业:为保证油水井正常生产所实施的工程项目)

⑵ 成本的消耗分为预算、结算、入账三个状态。

预算:采油队向管理部门提出作业申请,并经管理部门批准后,由管理部门负责录入。

结算:某次作业施工结束后,由管理部门与施工单位共同核算各种成本,由管理部门负责录入。

入账:结算后,财务部门将成本计入采油厂账目,由财务部门录入。

⑶ 预算状态时需要录入的数据:(★:字符型   ◆货币型   ▲日期型)

★单据号:某一作业项目的编号

★预算单位:指需要对油水井实施作业的采油队代码

★井号:需要实施作业的油水井

◆预算金额   ★预算人   ▲预算日期

⑷ 结算状态时需要录入的数据:(★:字符型   ◆货币型   ▲日期型   ▼数值型)

调出某条预算记录,录入以下数据:

▲开工日期   ▲完工日期   ★施工单位   ★施工内容

材料费(要求另外单独记录材料消耗的明细)

(★单据号  ★物码   ▼消耗数量   ◆单价)

◆人工费   ◆设备费   ◆其它费用

◆结算金额(材料费+人工费+设备费+其它费用)

★结算人   ▲结算日期

⑸ 入账状态时需要录入的数据:(★:字符型   ◆货币型   ▲日期型)

调出某条结算记录,录入以下数据:

◆入账金额   ★入账人   ▲入账日期

⑹ 为了避免出现数据的不一致和方便数据录入,要求定义以下基础表:(★:字符型)

单位代码表:★单位代码   ★单位名称

油水井表:★井号   ★井别:油井/水井   ★单位代码  (表示某口井由哪个单位负责管理)

施工单位表:★施工单位名称

物码表:★物码   ★名称规格   ★计量单位

建表代码如下:

create table 单位代码表(
单位代码 char(20),
单位名称 char(50)
);

create table 油水井表(
井号 char(10),
井别 char(4),
单位代码 char(20),
);

create table 施工单位表(
施工单位名称 char(20),
);

create table 物码表(
物码 char(5),
名称规格 char(10),
计量单位 char(2)
);

create table 预算结算入帐表(
单据号 char(10),
单位代码 char(20),
井号 char(10),
预算金额 money,
预算人 char(10),
预算日期 date,
开工日期 date,
完工日期 date,
施工单位名称 char(20),
施工内容 char(10),
材料费 money,
人工费 money,
设备费 money,
其他费用 money,
结算金额 money,
结算人 char(10),
结算日期 date,
入帐金额 money,
入帐人 char(10),
入帐日期 date
);

create table 材料费表(
单据号 char(10),
物码 char(5),
消耗数量 int,
单价 money
);

 录入数据代码如下:

insert
into 单位代码表
values ('1122','采油厂');
insert
into 单位代码表
values ('112201','采油一矿');
insert
into 单位代码表
values ('112202','采油二矿');
insert
into 单位代码表
values ('112201001','采油一矿一队');
insert
into 单位代码表
values ('112201002','采油一矿二队');
insert
into 单位代码表
values ('112201003','采油一矿三队');
insert
into 单位代码表
values ('112202001','采油二矿一队');
insert
into 单位代码表
values ('112202002','采油二矿二队');

insert 
into 物码表 
values ('wm001','材料一','吨');
insert 
into 物码表
values ('wm002','材料二','米');
insert 
into 物码表
values ('wm003','材料三','桶');
insert 
into 物码表
values ('wm004','材料四','袋');

insert
into 施工单位表
values ('作业公司作业一队');
insert
into 施工单位表
values ('作业公司作业二队');
insert
into 施工单位表
values ('作业公司作业三队');

insert
into 油水井表
values ('y001','油井','112201001');
insert
into 油水井表
values ('y002','油井','112201001');
insert
into 油水井表
values ('y003','油井','112201002');
insert
into 油水井表
values ('s001','水井','112201002');
insert
into 油水井表
values ('y004','油井','112201003');
insert
into 油水井表
values ('s002','水井','112202001');
insert
into 油水井表
values ('s003','水井','112202001');
insert
into 油水井表
values ('y005','油井','112202002');

insert
into 预算结算入帐表
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 预算结算入帐表
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 预算结算入帐表
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 预算结算入帐表
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 预算结算入帐表(单据号,单位代码,井号,预算金额,预算人,预算日期,开工日期,完工日期,
施工单位名称,施工内容,材料费,人工费,设备费,其他费用,结算金额,结算人,结算日期)
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 材料费表
values ('zy2016001','wm001',200,10);
insert
into 材料费表
values ('zy2016001','wm002',200,10);
insert
into 材料费表
values ('zy2016001','wm003',200,10);
insert
into 材料费表
values ('zy2016001','wm004',100,10);
insert
into 材料费表
values ('zy2016002','wm001',200,10);
insert
into 材料费表
values ('zy2016002','wm002',200,10);
insert
into 材料费表
values ('zy2016002','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 材料费表
values ('zy2016004','wm001',200,10);
insert
into 材料费表
values ('zy2016004','wm002',200,10);
insert
into 材料费表
values ('zy2016004','wm004',200,10);
insert
into 材料费表
values ('zy2016005','wm001',200,10);
insert
into 材料费表
values ('zy2016005','wm002',200,10);
insert 
into 材料费表
values('zy2016005','wm004',300,10);

利用Query Analyzer完成以下操作: 

⑴ 将编号为zy2016005的项目的人工费和结算金额增加200元。

⑵ 删除已经结算但未入账的项目。

⑶ 撤消上述两个操作。

代码如下:

begin tran
update 预算结算入帐表 set 人工费=1200.00,结算金额=11500.00
where 单据号='zy2016005'
delete 预算结算入帐表 where 结算金额 is not null AND 入帐金额 is NULL
rollback tran


You may also like...

发表评论

电子邮件地址不会被公开。 必填项已用*标注