0

特定の部品番号の部品表を取得するために再帰的な cte クエリを作成しましたが、BOM が必要な部品番号を尋ねる何かが必要です。このままでも問題なく動作しますが、品番の違いを簡単に調べられないと機能しません。

クエリは次のとおりです。

WITH BOM_CTE(COMPONENT, PARENT,QTY,LVL)

AS (SELECT i.fcomponent, i.fparent, i.fqty, 1 AS LVL

FROM dbo.inboms AS i INNER JOIN dbo.invcur ON i.fparent = dbo.invcur.fcpartno
AND i.fparentrev = dbo.invcur.fcpartrev INNER JOIN dbo.inmastx ON dbo.invcur.fcpartno
=dbo.inmastx.fpartno AND dbo.invcur.fcpartrev = dbo.inmastx.frev

WHERE(i.fparent = '124-5130')

UNION ALL

SELECT     i.fcomponent, i.fparent, i.fqty, BOM_CTE_1.LVL + 1 AS INC_LVL

FROM dbo.inboms AS i INNER JOIN BOM_CTE AS BOM_CTE_1 ON i.fparent=BOM_CTE_1.COMPONENT)



SELECT     B.PARENT, B.COMPONENT, B.QTY, B.LVL
FROM         BOM_CTE AS B LEFT OUTER JOIN
                        BOM_CTE AS C ON B.PARENT = C.COMPONENT
 GROUP BY B.PARENT, B.COMPONENT, B.QTY, B.LVL
 ORDER BY B.LVL

ご覧のとおり、CTE の最初の部分の WHERE 句によって結果が得られますが、このクエリはそのままでは Excel でグラフィカルに表現できないため、パラメーターを使用して部品番号を尋ねることはできません。

どうすればこれを達成できるかについてのアイデアはありますか?

4

0 に答える 0