2009-09-01 4 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 및 하위 그룹의 의미와 관련하여 질문에 대해 자세히 설명해주십시오. 관련 칼럼을 보는 것만으로는 하나의 OrgId에서 반환되는 것과 관련된 여러 조직을 찾고 있는지 또는 완전히 다른 것 (누락 된 컬럼?)이 진행되고 있는지 이해할 수 없습니다. –

+0

RAO 및 SubGroup은 oraganisation 유형이며, 어떤 조직을 만들 때마다 RAO 또는 하위 그룹이 될 것입니다. 그러나 모든 하위 그룹은 일부 RAO 아래에 있으며 누가 하위 그룹 테이블에 항목을 입력합니다. 그래서 내가 쿼리에 orgid를 전달하면 모든 하위 그룹 이름을 나열하고 싶습니다. –

+0

ORGANIZATION.orgid 또는 RAO.raogid로 필터링 하시겠습니까? "rao orgid"가 의미하는 바가 내게 명확하지 않습니다. –

답변

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 

건배 아래로 내 문제를 해결!

관련 문제