|
谢谢eric_e ,测试后,做了小小的修改(下面蓝色加粗字体),能在我公司应用了。
declare @ItemCode nvarchar(20)
select @ItemCode=t0.code from oitt t0 where t0.code='[%0]';
WITH Bom(Father, code, BomLevel,sort,warehouse,Qty,issue) AS
(
SELECT CONVERT(NVARCHAR(40),N'') Father ,T0.Code Code, 0 AS bomlevel, CONVERT(VARCHAR(255), @ItemCode) Sort ,ToWH WareHouse,Qauntity Quantity ,CONVERT(CHAR(1),'') Issuemthd
FROM OITT T0
WHERE Code = @itemCode
UNION ALL
SELECT CONVERT(NVARCHAR(40), T0.Father ) Father, T0.Code , T1.Bomlevel + 1,CONVERT(VARCHAR(255),RTRIM(Sort)+T0.code),T0.Warehouse,T0.Quantity,T0.Issuemthd
FROM ITT1 T0
INNER JOIN BOM T1
ON T0.Father = T1.Code
)
SELECT CASE WHEN T0.BomLevel=0 THEN T0.Code ELSE NULL END 产成品,
CASE WHEN T0.BomLevel=0 THEN T1.ItemName ELSE NULL END 成品名称,
T0.BomLevel 深度,
LEFT( '. ',T0.BomLevel*4)+ ( CASE WHEN T0.BomLevel >0 THEN T0.Code ELSE N'' END) 物料编号,
CASE WHEN T0.BomLevel >0 THEN T1.ItemName ELSE NULL END 物料描述,
T0.Qty 用量,
CASE T0.Issue WHEN 'M' THEN N'手动' WHEN 'B' THEN N'倒冲' END 发货方法
FROM BOM T0
JOIN OITM T1 WITH(NOLOCK) ON T0.Code = T1.Itemcode order by sort
[ 本帖最后由 acpower 于 2009-4-1 15:14 编辑 ] |
|