という名前Category
の列を持つテーブルという名前のテーブルがありますCategoryID
。と呼ばれる同じテーブルに参照列がありますfParentCategoryID
。
すべてのカテゴリIDとそのサブカテゴリIDをカンマで区切る必要があります。例 -10の親カテゴリIDが1で、20の親カテゴリIDが10の場合、カテゴリID 20を印刷するとき、1と10の両方を親としてカンマ区切り値で印刷する必要があります。
以下のクエリを試してみましたがNULL
、ParChild
列が表示されます。助けてください。
;WITH
cteReports
AS
(
SELECT c.CategoryID,
c.fParentCategoryID,
[level] = 1,
ParChild=cast(CAST(c.fParentCategoryID AS VARCHAR(200)) + ',' + CAST(c.CategoryID AS VARCHAR(200)) AS VARCHAR(MAX))
FROM retail.Category c
WHERE c.fParentCategoryID is NULL
UNION ALL
SELECT c.CategoryID,
c.fParentCategoryID,
[level] + 1,
ParChild = ParChild + ',' + CAST(c.CategoryID AS VARCHAR(200))
FROM retail.Category c
JOIN cteReports r
ON c.fParentCategoryID = r.CategoryID
)
SELECT *
FROM cteReports cr
使用このスクリプトを作成して、テーブルを移入します。 (注:質問の本文には30Kの制限があります。そのため、ペーストビンを使用してコードをコピーして参照する必要がありました)