获取所有儿童记录

时间:2009-09-01 14:07:09

标签: sql

我正在使用SQL Query,下面是表格。

组织

OrgID     Name             RAOID      SubGroupID
1         Org RAO1         2          NULL
2         Org RAO2         NULL       2
3         Org Sub Group1   3          NULL
4         Org RAO3         NULL       1
5         Org RAO4         1          NULL
6         Org Sub Group2   NULL       3

RAO

RAOID   RAOGID
1         1
2         1

子组

SubGroupID  RAOID
1            1
2            1
3            1
4            2

我有三个表Organization,RAO,SubGroup。我可以拥有RAO或SubGroup类型的组织。但是,如果您看到子组表,则它具有多个RAOID。当任何rao orgid传递给查询时,我希望rao下的所有子组织名称。

1 个答案:

答案 0 :(得分:1)

我用以下查询解决了我的问题

CREATE PROCEDURE uspGetSubSource
( @ORGID INT)
AS
DECLARE @RAOID INT
SET @RAOID = (SELECT RAOID FROM tblOrganisation WHERE ORGID = @ORGID)

IF @RAOID IS NOT NULL
BEGIN
SELECT tblOrganisation.ORGID,
tblOrganisation.NAME as SUBSOURCENAME FROM tblOrganisation 
LEFT OUTER JOIN tblSubGroup ON tblOrganisation.SubGroupID = tblSubGroup.SubGroupID
WHERE
tblSubGroup.RAOID = @RAOID
END

干杯!!