老师讲的有道理,但是问题是这个条件是动态的,用户选择不同的节点设置不同的目录树等都不一样,要怎么才能传递到视图中呢,只能改用存储过程,还是?
而且不同的用户操作,可能每个人点击时生成的条件都不一样,如果合成前就加入条件的话,会否有其他影响?
每个月新增加的记录数大概是2~3万条。
下面是视图的代码:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[Stockinout]
AS
SELECT a._Identify,b.入库单号 AS 进出单号,a.入库日期 AS 进出日期,a.入库单位 AS 进出单位,a.仓库,a.仓管员, b.产品编码, b.来源单号, b.品名, b.规格, 0 AS 工序号,b.数量 AS 入库数量, 0 AS 出库数量, b.数量 AS 进出数量, b.计量单位,
品质判定,'采购入库' AS 进出类别,0 as 盘点序号,CASE When b.品质判定 in('合格','特采') then '合格品' when b.品质判定 in('选别','退货') then '不良品' when b.品质判定 = '报废' then '报废品' else '未判定' end as 品质状态
FROM dbo.采购入库单 AS a INNER JOIN dbo.采购入库明细 AS b ON a.入库单号 = b.入库单号
UNION ALL
SELECT a._Identify,b.退货单号 AS 进出单号,a.退货日期 AS 进出日期,a.收货单位 AS 进出单位,a.仓库,a.仓管员,b.产品编码,b.来源单号,b.品名,b.规格,0 AS Expr1,0 AS 入库数量,-b.数量 AS 出库数量,b.数量 AS 进出数量,b.计量单位,
品质状态, '采购退货' AS 进出类别,0 as 盘点序号,CASE WHEN b.品质状态 = '合格品' then '合格品' when b.品质状态 ='不良品' then '不良品' when b.品质状态 = '报废品' then '报废品' else '未判定' end as 品质状态
FROM dbo.采购退货单 AS a INNER JOIN dbo.采购退货明细 AS b ON a.退货单号 = b.退货单号
UNION ALL
...后面的表都类似
[此贴子已经被作者于2014-8-20 17:50:57编辑过]