在接下来,我想借助一个例子,来加深大家对数据库报表的认识,由简到难生成数据库报表!
这里创建一个简化的进销系统,系统中只有销售单和采购单,不存在红冲单据及其库存、退货等单据。由于销售单和采购单存在主从结构,所以将这两张表中的主从数据分别保存在不同的表中。下面是这个系统中表之间的关系图:
表 T_Person 为人员表,FId字段为主键,FNumber 字段为人员工号,FName 字段为人
员姓名,FManagerId字段为上级主管主键(指向T_Person表的 FId字段的外键) 。
表T_Merchandise为商品表,FId字段为主键,FNumber字段为产品编号,FName字段
为商品名,FPrice为商品价格;
表T_SaleBill为销售单主表,FNumber字段为销售单编号,
FBillMakerId字段为开单人主键(指向T_Person表的 FId字段的外键) ,FMakeDate 字段为
制单日期,FConfirmDate字段为确认日期;
表T_SaleBillDetail为销售单明细记录,FId字段
为主键,FBillId字段为主表主键(指向 T_SaleBill 表的 FId 字段的外键) ,FMerchandiseI
字段为商品主键(指向T_Merchandise表的FId字段的外键) ,FCount字段为销售数量。
表T_PurchaseBill为采购单主表,FNumber字段为采购单编号,FBillMakerId字段为开
单人主键(指向T_Person表的FId字段的外键), FMakeDate字段为制单日期, FConfirmDat
字段为确认日期;
表T_PurchaseBillDetail为采购单明细记录,FId字段为主键,FBillId字段
为主表主键(指向T_PurchaseBill表的FId字段的外键) , FMerchandiseId字段为商品主键(指
向T_Merchandise表的FId字段的外键),FCount字段为采购数量。
下面是创建表的SQL语句以及插入数据的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(Fbil