T-SQL Recursion
** Support SQL 2005 up
# ใช้ในกรณีที่ข้อมูลเป็นลักษณะ หัวหน้าและลูกน้อง อยากรู้ว่าหัวหน้าคนนี้มีลูกน้องคือใครบ้างเป็นต้น
WITH T_Reports (t_mitm,t_sitm,level)
AS
(
SELECT t_mitm, t_sitm, 0 as level
FROM bom
WHERE ltrim(rtrim(t_mitm)) = 'xx-xx'
UNION ALL
SELECT b.t_mitm, b.t_sitm, level + 1
FROM bom b
INNER JOIN T_Reports as t ON t.t_sitm = b.t_mitm
)
select * from T_Reports order by level,t_mitm
อธิบาย หมายถึง การสร้างตารางเสมือน T_Reports แล้วทำการนำค่า จาก Query ที่ 1,2 ไปใส่ในตาราง T_Reports
# ใช้ในกรณีที่ข้อมูลเป็นลักษณะ หัวหน้าและลูกน้อง อยากรู้ว่าหัวหน้าคนนี้มีลูกน้องคือใครบ้างเป็นต้น
WITH T_Reports (t_mitm,t_sitm,level)
AS
(
SELECT t_mitm, t_sitm, 0 as level
FROM bom
WHERE ltrim(rtrim(t_mitm)) = 'xx-xx'
UNION ALL
SELECT b.t_mitm, b.t_sitm, level + 1
FROM bom b
INNER JOIN T_Reports as t ON t.t_sitm = b.t_mitm
)
select * from T_Reports order by level,t_mitm
อธิบาย หมายถึง การสร้างตารางเสมือน T_Reports แล้วทำการนำค่า จาก Query ที่ 1,2 ไปใส่ในตาราง T_Reports
Comments
Post a Comment