多表查询汇总问题!
有八个表,表的结构如下
--创建货品信息表
create table T_Goods(
id int IDENTITY(1,1) primary key, --编号
Barcode varchar(50), --条形码
GoodsCode varchar(50), --货品编码
GoodsName varchar(200), --货品名称
GoodsType varchar(50), --货品类别 /code
GoodsUnit varchar(50), --货品规格
Units varchar(10), --单位
price float, --单价
vipprice float, --会员价
DepotUp float, --库存上限
DepotDown float, --库存下限
memo varchar(200)) --备注
--创建仓库货品库存表
create table depot(
depotname varchar(50), --仓库名称
Barcode varchar(50), --条形码
GoodsName varchar(200), --货品名称
GoodsCode varchar(50), --货品编码
units varchar(10), --单位
Number float) --数量
--创建采购货品入库表
create table T_Import(
id int IDENTITY(1,1) primary key, --编号
ImportID varchar(50), --入库单号
depotname varchar(50), --仓库名称
Barcode varchar(50), --条形码
GoodsCode varchar(50), --货品编码
GoodsName varchar(200), --货品名称
GoodsUnit varchar(50), --货品规格
units varchar(10), --单位
Number float, --数量
InPrice float, --入库价
Outdate varchar(200), --过期时间
Product varchar(200), --供应商
OnBillCode varchar(50), --对应的单号
memo varchar(200), --备注
jingbanren varchar(50), --经办人
zhizuoren varchar(50), --制作人
Addtime datetime) --入库时间
--创建采购货品退货表
create table T_Outport(
id int IDENTITY(1,1) primary key, --编号
OutportID VARCHAR(50), --退货单号
depotname varchar(50), --仓库名称
Barcode varchar(50), --条形码
GoodsCode varchar(50), --货品编码
GoodsName varchar(200), --货品名称
GoodsUnit varchar(50), --货品规格
units varchar(10), --单位
Number float, --数量
InPrice float, --入库价
Outdate varchar(200), --过期时间
Product varchar(200), --供应商
OnBillCode varchar(50), --对应的入库单号
memo varchar(200), --备注
jingbanren varchar(50), --经办人
zhizuoren varchar(50), --制作人
Addtime smalldatetime) --退货时间
--创建销售表
create table T_Sales(
id int IDENTITY(1,1) primary key, --编号
SalesID varchar(50), --销售单号
depotname varchar(50), --仓库名称
Barcode varchar(50), --条形码
GoodsCode varchar(50), --货品编码
GoodsName varchar(200), --货品名称
GoodsUnit varchar(50), --货品规格
units varchar(10), --单位
Number float, --数量
Price float, --单价
Addtime smalldatetime, --销售时间
jingbanren varchar(50), --经办人
zhizuoren varchar(50), --制作人
memo varchar(200)) --备注
--创建销售退货表
create table T_outsales(
id int IDENTITY(1,1) primary key, --编号
OutsalesID varchar(50), --退货单号
depotname varchar(50), --仓库名称
Barcode varchar(50), --条形码
GoodsCode varchar(50), --货品编码
GoodsName varchar(200), --货品名称
GoodsUnit varchar(50), --货品规格
units varchar(10), --单位
Number float, --数量
Price float, --单价
OnBillCode varchar(50), --对应的销售单号
Addtime smalldatetime, --退货时间
jingbanren varchar(50), --经办人
zhizuoren varchar(50), --制作人
memo varchar(200)) --备注
--创建仓库损益表
create table T_sunyi(
id int IDENTITY(1,1) primary key, --编号
SunyiID varchar(50), --损益单号
depotname varchar(50), --仓库名称
Barcode varchar(50), --条形码
GoodsCode varchar(50), --货品编码
GoodsName varchar(200), --货品名称
GoodsUnit varchar(50), --货品规格
units varchar(10), --单位
Number float, --数量
Price float, --单价
Addtime smalldatetime, --损益时间
jingbanren varchar(50), --经办人
yuanyou varchar(500), --原因
memo varchar(200)) --备注
CREATE TABLE PosDetail ( --POS详细单
BillNo [nvarchar] (30) NOT NULL , --//POS单号
OrderID [smallint] NOT NULL , --//序号
GoodsId [nvarchar] (30) NOT NULL , --//货品编号
Quantity [numeric](18, 3) NOT NULL , --//数量
Price [numeric](18, 2) NOT NULL , --//商品单价
Discount [smallint] NOT NULL , --//折扣
Amount [numeric](18, 2) NOT NULL, --//金额
Store [nvarchar] (30) NOT NULL , --//仓库
BillDate [datetime] NOT NULL --//开单日期
)
查询汇总的时候是通过仓库名称和货品编码连接各表
想实现查询汇总成
仓库名称,货品编码,条形码,货品名称,规格,利润,库存单位,库存总数量,采购收货单位,采购总数量,采购总金额,采购退货单位,采购退货总数量,采购退货总金额,销售出货单位,销售退货总数量,采购退货总金额,报损单位,报损总数量,报损总金额,报溢单位,报溢总数量,报溢总金额,POS销售单位,POS销售总数量,POS销售总金额
其中报损是查询仓库损益表T_sunyi数量为负数,即小于0的那些
报溢是查询仓库损益表T_sunyi数量为正数,即大于0的那些