2009-09-01 213 views
0

我正在使用SQL查询,下面是表格。获取所有子记录

组织

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 

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

+1

请详细说明您的问题,特别是关于RAO和SubGroup的含义。如果您正在寻找与某个OrgId返回相关的多个组织,或者如果发生完全不同的事情(缺少列),那么查看相关列不足以帮助我理解。 – 2009-09-01 14:11:01

+0

RAO和SubGroup是组织类型,我的意思是每次创建任何组织时,它都将是RAO或子组。但是每个小组都在一些RAO下,谁的输入被输入到子组表中。所以我想列出所有的小组组织名称,如果我将orgid传递给查询。 – 2009-09-01 14:18:09

+0

您想要按ORGANIZATION.orgid或RAO.raogid进行过滤?我不清楚你的意思是“rao orgid”。 – 2009-09-01 14:45:51

回答

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 

干杯!