0
私は2つのテーブルを持っています。最初のテーブルTable0には、各アイテムのコードとそのアイテムの名前が格納されています。第2のテーブルTable1は、「父親」のアイテムコードと、各父親のための多数の「子供の」アイテムコードとを格納する。SQLリピートは異なる条件を結合します
Table0 Table1
itemCode | itemName fatherCode | childCode | childNum
10101 | Item 1 10101 | 20101 | 1
20101 | Sub-item 1 10101 | 20102 | 2
20102 | Sub-item 2
子供の目的は、父親を構成するためにどのような構成要素が必要であるかを示すことです。また、Table0には、それぞれの子アイテムのコードと名前が格納されています。
私は父親のコードと名前、そして父親の隣にある各子供のコードと名前を示したいと思います。
fatherCode | itemName | childCode | itemName2 | childNum
10101 | Item 1 | 20101 | Sub-item 1 | 1
10101 | Item 1 | 20102 | Sub-item 2 | 2
私はそれだけで、繰り返しの単純なケースであろうと推測
が参加するが、異なる条件ではなく、itemName2列がちょうどである何を繰り返している:私は後だ何
はこのようなものです最初のitemName
私が試してみましたし、これは動作しませんでした何を:
SELECT
T0.ItemCode,
T0.ItemName,
T1.Code,
T2.ItemName,
T1.Quantity,
T1.ChildNum
FROM Table0 T0
LEFT JOIN Table1 T1 ON T1.Father = T0.ItemCode
INNER JOIN Table0 T2 ON T2.ItemName = T0.ItemName
LEFT JOIN Table1 T3 ON T3.Code = T2.ItemCode
WHERE T1.ChildNum IS NOT NULL
ORDER BY T1.ItemCode
t1左結合t0左結合t0 – jarlh
レベル数に制限はありますか? (サブアイテムにはサブアイテムがあるサブアイテムがあります。サブアイテムには...がある場合)、階層をトラバースするには、再帰的なCTEを使用して "Loop"またはFor XML Pathステートメントを使用する必要があります。これが可能な場合は、階層クエリの結果が後になります。 – xQbert
あなたはSQL Serverを求めてきました。あなたは再帰的なアプローチを試してみたいと思います。 Common-Table-Expression(CTE)のように:http://www.codeproject.com/Articles/31010/Recursion-in-SQL-using-CTE – Nebi