使用以下存儲過程來選擇給定單位id的所有子單元。對於each unit only one child
是沒有子單元用於選擇子的SQL查詢
ALTER PROCEDURE [dbo].[UnitSelectChildByID]
@company_ID INT,
@unit_ID INT
AS
BEGIN
DECLARE @parent INT
SET @[email protected]_ID
DECLARE @temp TABLE(id int)
WHILE((SELECT COUNT(*) FROM tblUnit WHERE [email protected]) >0)
BEGIN
INSERT INTO @temp SELECT unit_ID FROM tblUnit WHERE [email protected]
SET @parent=(SELECT unit_ID FROM tblUnit WHERE [email protected])
END
SELECT
unit_ID
,short_Name AS unit
FROM
tblUnit
WHERE
unit_ID IN (SELECT id FROM @temp) OR [email protected]_ID
END
這是正常工作。我想知道更好的方法是由avoiding while loop and table variable
不工作,查詢選擇其他家庭的孩子也...... – Nithesh
替換'ISNULL(p.parent_ID,@unit_ID) '用'ISNULL(u.parent_ID,u.unit_ID)''。對錯誤抱歉。 –
:agian錯了..它只返回第一個孩子。 – Nithesh