由简到难生成数据库报表(一)

论坛 期权论坛     
匿名小用户   2019-10-20 18:43   12   0
<p>    <span style="font-size:18px;">   <strong>在接下来,我想借助一个例子,来加深大家对数据库报表的认识,由简到难生成数据库报表!</strong></span></p>
<p><span style="font-size:18px;"><strong><span></span>这里创建一个简化的进销系统,系统中只有销售单和采购单,不存在红冲单据及其库存、退货等单据。由于销售单和采购单存在主从结构,所以将这两张表中的主从数据分别保存在不同的表中。下面是这个系统中表之间的关系图:</strong></span></p>
<p><span style="font-size:18px;"><strong><img alt="" src="https://201907.oss-cn-shanghai.aliyuncs.com/cs/5606289-321e844295679861fd3f31a71ebc847f.png"><br></strong></span></p>
<p><span style="font-size:18px;"><strong></strong></span></p>
<p style="font-family:Calibri;font-size:10.5pt;">表 T_Person 为人员表,FId字段为主键,FNumber 字段为人员工号,FName 字段为人</p>
<p style="font-family:Calibri;font-size:10.5pt;">员姓名,FManagerId字段为上级主管主键(指向T_Person表的 FId字段的外键) 。</p>
<p style="font-family:Calibri;font-size:10.5pt;"><br></p>
<p style="font-family:Calibri;font-size:10.5pt;">表T_Merchandise为商品表,FId字段为主键,FNumber字段为产品编号,FName字段</p>
<p style="font-family:Calibri;font-size:10.5pt;">为商品名,FPrice为商品价格;</p>
<p style="font-family:Calibri;font-size:10.5pt;">表T_SaleBill为销售单主表,FNumber字段为销售单编号,</p>
<p style="font-family:Calibri;font-size:10.5pt;">FBillMakerId字段为开单人主键(指向T_Person表的 FId字段的外键) ,FMakeDate 字段为</p>
<p style="font-family:Calibri;font-size:10.5pt;">制单日期,FConfirmDate字段为确认日期;</p>
<p style="font-family:Calibri;font-size:10.5pt;"><br></p>
<p style="font-family:Calibri;font-size:10.5pt;">表T_SaleBillDetail为销售单明细记录,FId字段</p>
<p style="font-family:Calibri;font-size:10.5pt;">为主键,FBillId字段为主表主键(指向 T_SaleBill 表的 FId 字段的外键) ,FMerchandiseI</p>
<p style="font-family:Calibri;font-size:10.5pt;">字段为商品主键(指向T_Merchandise表的FId字段的外键) ,FCount字段为销售数量。</p>
<p style="font-family:Calibri;font-size:10.5pt;"><br></p>
<p style="font-family:Calibri;font-size:10.5pt;">表T_PurchaseBill为采购单主表,FNumber字段为采购单编号,FBillMakerId字段为开</p>
<p style="font-family:Calibri;font-size:10.5pt;">单人主键(指向T_Person表的FId字段的外键), FMakeDate字段为制单日期, FConfirmDat</p>
<p style="font-family:Calibri;font-size:10.5pt;">字段为确认日期;</p>
<p style="font-family:Calibri;font-size:10.5pt;"><br></p>
<p style="font-family:Calibri;font-size:10.5pt;">表T_PurchaseBillDetail为采购单明细记录,FId字段为主键,FBillId字段</p>
<p style="font-family:Calibri;font-size:10.5pt;">为主表主键(指向T_PurchaseBill表的FId字段的外键) , FMerchandiseId字段为商品主键(指</p>
<p style="font-family:Calibri;font-size:10.5pt;">向T_Merchandise表的FId字段的外键),FCount字段为采购数量。</p>
<p style="font-family:SimSun;font-size:10.5pt;">下面是创建表的SQL语句以及插入数据的SQL语句:</p>
<p style="font-family:SimSun;font-size:10.5pt;"></p>
<pre class="blockcode"><code class="language-sql">--创建T_Person表
create table T_Person
(
FId varchar(20) not null,
FNumber varchar(20),
FName varchar(20),
FManagerId varchar(20),
primary key(FId),
foreign key(FManagerId) references T_Person(Fid)
)
--创建T_Merchandise表
create table T_Merchandise
(
FId varchar(20) not null,
FNumber varchar(20),
FName varchar(20),
FPrice int,
primary key(fid)
)
--创建T_SaleBill表
create table T_SaleBill
(
FId varchar(20) not null,
FNumber varchar(20),
FBillMakerId varchar(20),
FMakeDate datetime,
FConfirmDate datetime,
primary key(fid),
foreign key(Fbillmakerid) references T_Person(fid)
)
--创建T_SaleBillDetail表
create table T_SaleBillDetail
(
FId varchar(20),
FBillId varchar(20),
FMerchandiseId varchar(20),
FCount int,
primary key(fid),
foreign key(Fbillid) references T_SaleBill(fid),
foreign key(Fmerchandiseid) references T_Merchandise(fid)
)
--创建T_PurchaseBill表
create table T_PurchaseBill
(
Fid varchar(20) not null,
FNumber varchar(20),
FBillMakerId varchar(20),
FMakeDate datetime,
FConfirmDate datetime,
primary key(fid),
foreign key(FBillMakerId) references T_Person(fid)
)
--创建T_PurchaseBillDetail表
CREATE  TABLE  T_PurchaseBillDetail
(
FId  VARCHAR(20)  NOT  NULL  ,
FBillId VARCHAR(20),
FMerchandiseId  VARCHAR(20),
FCount  INT,PRIMARY KEY  (FId),
FOREIGN KEY  (FBillId)  REFERENCES  T_PurchaseBill(FId),
FOREIGN  KEY  (FMerchandiseId) REFERENCES T_Merchandise(FId)
)
--首先向T_Person、T_Merchandise两张表中插入演示数据:
insert into T_Person(FId,FNumber,FName,FManagerId)
values('00001','1','Robert',NULL)
insert into T_Person(FId,FNumber,FName,FManagerId)
values('00002','2','John','00001')
insert into T_Person(FId,FNumber,FName,FManagerId)
values('00003','3','Tom','00001')
insert into T_Person(FId,FNumber,FName,FManagerId)
values('00004','4','Jim','00003')
insert into T_Person(FId,FNumber,FName,FManagerId)
values('00005','5','Lily','00002')
insert into T_Person(FId,FNumber,FName,FManagerId)
values('00006','6','Merry','00003')
insert into T_Merchandise(F
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:50
帖子:1079
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP