2009-09-01 10 views
0

J'utilise SQL Query et ci-dessous sont les tables.Obtenir tous les enregistrements enfant

Organisation

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 

Sous-groupe

SubGroupID RAOID 
1   1 
2   1 
3   1 
4   2 

J'ai trois tables Organisation, RAO, Sous-groupe. Je peux avoir des organisations de type RAO ou SubGroup. Cependant, si vous voyez la table de sous-groupe, elle a plusieurs RAOID. Je veux que tout le nom d'organisation de sous-groupe sous rao quand n'importe quelle organisation rao est passée à la requête.

+1

Veuillez préciser votre question, en particulier en ce qui concerne RAO et SubGroup. Il n'est pas suffisant de voir des colonnes associées pour comprendre si vous recherchez plusieurs organisations liées à un OrgId, ou si quelque chose de complètement différent (colonne manquante?) Se produit. –

+0

RAO et SubGroup sont des types d'oraganisations, je veux dire chaque fois que je crée une organisation, ce sera un RAO ou un sous-groupe. Mais chaque sous-groupe est sous RAO, dont l'entrée est entrée dans le tableau du sous-groupe. Donc je veux lister tout le nom de l'organisation du sous-groupe si je passe l'orgid à la requête. –

+0

Vous souhaitez filtrer par ORGANIZATION.orgid ou RAO.raogid? Ce n'est pas clair pour moi ce que vous voulez dire par "rao orgid". –

Répondre

1

Je résolu mon problème ci-dessous requête

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 

Vive !!

Questions connexes