با سلام.
من یه جدول برای دسته بندی دارم
CREATE TABLE [dbo].[AnbarCategory](
[ID] [int] IDENTITY(1,1) NOT NULL,
[Title] [nvarchar](500) NOT NULL,
[ParentID] [int] NULL,
CONSTRAINT [PK_AnbarCategory] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
و با کد زیر تمامی parent های هر نود را نشون میدم
WITH departmentcte(deptid, department, ParentID, LEVEL, treepath) AS
( SELECT id AS deptid, Title, ParentID, 0 AS LEVEL,
CAST(Title AS nVARCHAR(1024)) AS treepath
FROM AnbarCategory
WHERE ParentID IS NULL
UNION ALL
SELECT d.id AS deptid, d.Title, d.ParentID,
departmentcte.LEVEL + 1 AS LEVEL,
CAST(departmentcte.treepath + ' -> ' +
CAST(d.Title AS nVARCHAR(1024))
AS nVARCHAR(1024)) AS treepath
FROM AnbarCategory d
INNER JOIN departmentcte
ON departmentcte.deptid = d.ParentID
)
SELECT *
FROM departmentcte
ORDER BY treepath;
ولی این کار وقتی جواب میده که بخوام همه نود ها را با parent هاش نشون بدم.
1.jpg
واگه بخوام فقط یک نود (مثلا deptid 13 )را توی یک ردیف با parent هاش نشون بدم کار نمیده و خروجی زیر را داره
2.jpg