1

部品表テーブルには、部品番号、親部品、およびレベルコードの3つの主要な列があります(0は親なし、3は子の子、など)。

単一のパーツに基づいてクエリを実行し、そのすべての子とその子を取得しようとしています。

とてもシンプルに見えますが、私はこれに苦労しています。誰もが彼らが提供できる解決策を持っていますか?

いつものように、私は助けに感謝します。

ランディのリクエストにより、ここにいくつかの詳細があります:

PARPRT=親COMPRT=コンポーネント

スクリーンショットでは、すべての構成部品が「101002」の部品表の一部です。

表の後半に、PARPRT列にリストされているCOMPRT内の各コンポーネントと、それらを構成するコンポーネントが表示されます。

BOMに「101002」を照会して、PARPRT = '101002'であるCOMPRTの4つの部分だけでなく、それらのCOMPRTなども取得したいと思います。

スクリーンショット

4

1 に答える 1

0

CTEを提案してくれた人たちに感謝します。それがまさに私が探していたものでした。

これは、試行錯誤の末に私が最終的に得たクエリです。

USE PartDatabase
GO
DECLARE @TheSinglePart CHAR(30)= '100001';

WITH BOM(PARPRT_02、COMPRT_02、QTYPER_02)
AS

-アンカーメンバー定義
SELECT e.PARPRT_02、e.COMPRT_02、e.QTYPER_02
FROM dbo.Product_Structure AS e WHERE
e.PARPRT_02 = @TheSinglePartUNIONALL-
再帰
メンバー定義SELECTe
.PARPRT_02、e.COMPRT_02、e.QTYPER_02
FROM dbo.Product_Structure AS e
INNER JOIN BOM AS d
ON e.PARPRT_02 = d.COMPRT_02


SELECT *
FROM BOM;

于 2012-12-20T15:25:16.997 に答える