2009-09-01 8 views
0

Я использую 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 

РАО

RAOID RAOGID 
1   1 
2   1 

Подгруппа

SubGroupID RAOID 
1   1 
2   1 
3   1 
4   2 

У меня есть три таблицы Организация, РАО, Подгруппа. У меня могут быть организации типа RAO или SubGroup. Однако, если вы видите таблицу подгруппы, она имеет несколько RAOID. Я хочу, чтобы все название организации подгруппы находилось под rao, когда какой-либо rao orgid передан в запрос.

+1

Просьба подробно рассказать о вашем вопросе, в частности, в отношении того, что означает RAO и подгруппа. Просмотр связанных столбцов недостаточно, чтобы помочь мне понять, ищете ли вы несколько организаций, которые связаны с возвратом из одного OrgId, или если что-то совершенно другое (отсутствует столбец?) Продолжается. –

+0

RAO и SubGroup являются типами oraganisations, я имею в виду каждый раз, когда я создаю любую организацию, это будет 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 

Ура !!

Смежные вопросы