特定の部品 (アセンブリ) のすべての子部品を取得するために、WindChill データベースにクエリを実行しようとしています。私が今持っているのはこれです:
-- this is how sql server management studio rewrites an oracle join
SELECT M1.WTPARTNUMBER AS COMPONENT, M2.WTPARTNUMBER AS ASSEMBLY, MAX(WTPARTUSAGELINK.AMOUNTA7) AS AMOUNT
FROM WTPART, WTPARTMASTER M2, WTPARTUSAGELINK, WTPARTMASTER M1
WHERE WTPART.IDA3MASTERREFERENCE = M2.IDA2A2
AND WTPART.IDA2A2 = WTPARTUSAGELINK.IDA3A5
AND WTPARTUSAGELINK.IDA3B5 = M1.IDA2A2
GROUP BY M2.WTPARTNUMBER, M1.WTPARTNUMBER
order by M2.WTPARTNUMBER, M1.WTPARTNUMBER
これは、すべてのアセンブリとそのパーツのリストを取得し、後でツリーを構築するときにフィルター処理できるという意味で機能します。これはまったく問題ありません。合計で 1,000 個のアセンブリがあります。
問題は、WindChill から削除した行も表示されることです (WindChill Web アプリには表示されません)。これはロングショットだと思いますが、参加する必要がある別のテーブルや、潜在的な子パーツを実際に含めるかどうかを取得する必要があるものはありますか?