在sqlserver 视图中显示库存怎么做?
有入库表与出库、库位表表个一张内容如下
入库:X_SE_RK_MX
字段 ID 单号 商品名称 色号 生产日期 批号 数量
出库:X_SE_CK_MX
字段 ID 仓位ID 单号 商品名称 色号 生产日期 批号 数量
库位表:WFdisk
字段 ID QW KF cDate JG_NO
-----------------------------------------表代码--------------------------------------
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[WFdisk]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[WFdisk]
GO
CREATE TABLE [dbo].[WFdisk] (
[ID] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
[QW] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[KF] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[cDate] [datetime] NULL ,
[JG_NO] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[X_SE_RK_MX]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[X_SE_RK_MX]
GO
CREATE TABLE [dbo].[X_SE_RK_MX] (
[ID] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
[单号] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[商品名称] [char] (64) COLLATE Chinese_PRC_CI_AS NULL ,
[色号] [char] (25) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[生产日期] [datetime] NULL ,
[批号] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[数量] [numeric](18, 2) NOT NULL
) ON [PRIMARY]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[X_SE_CK_MX]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[X_SE_CK_MX]
GO
CREATE TABLE [dbo].[X_SE_CK_MX] (
[ID] [numeric](18, 0) IDENTITY (1, 1) NOT NULL ,
[仓位ID] [numeric](18, 0) NULL ,
[单号] [char] (30) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[商品名称] [char] (64) COLLATE Chinese_PRC_CI_AS NULL ,
[色号] [char] (25) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[生产日期] [datetime] NULL ,
[批号] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[数量] [numeric](18, 2) NOT NULL
) ON [PRIMARY]
GO
-------------------------------------------------------------------------------------
我用这三张表,做了如下的视图,但总是显示重复数据,请问大家有什么好办法处理?我不想用处理 重复数居的函数
我想要一个不会显示重复数据的视图。请大家帮忙想想,谢谢!
SELECT dbo.WFdisk.KF AS 库房, dbo.WFdisk.QW AS 仓位, dbo.X_SE_RK_MX.商品名称,
dbo.X_SE_RK_MX.色号, dbo.X_SE_RK_MX.生产日期, dbo.X_SE_RK_MX.批号,
dbo.X_SE_RK_MX.数量 AS 入库数量,
(SELECT 数量
FROM X_SE_CK_MX
WHERE 仓位ID = wfdisk.id AND 商品名称 = x_se_rk_mx.商品名称 AND
色号 = x_se_rk_mx.色号 AND 生产日期 = x_se_rk_mx.生产日期 AND
批号 = x_se_rk_mx.批号) AS 出库数量, dbo.X_SE_RK_MX.数量 -
(SELECT 数量
FROM X_SE_CK_MX
WHERE 仓位ID = wfdisk.id AND 商品名称 = x_se_rk_mx.商品名称 AND
色号 = x_se_rk_mx.色号 AND 生产日期 = x_se_rk_mx.生产日期 AND
批号 = x_se_rk_mx.批号) AS 剩余数量
FROM dbo.X_SE_RK_MX INNER JOIN
dbo.X_SE_RK_ZY ON dbo.X_SE_RK_MX.单号 = dbo.X_SE_RK_ZY.单号 INNER JOIN
dbo.WFdisk ON dbo.X_SE_RK_ZY.仓位ID = dbo.WFdisk.ID CROSS JOIN
dbo.X_SE_CK_MX
[ 本帖最后由 ckassassin 于 2012-11-28 13:03 编辑 ]