Voici ma table:
J'ai écrit la requête ci-dessous
select a.name as 'Roll up', b.name as 'Appeal Category', C.NAME as 'Planned Appeal', D.NAME as 'PME' from GROUP_TABLE A left outer JOIN GROUP_TABLE B ON A.MKTPLANID = B.MKTPLANID AND A.PARENTID = B.PMKID left outer JOIN GROUP_TABLE C ON A.MKTPLANID = C.MKTPLANID AND B.PARENTID = C.PMKID left outer JOIN GROUP_TABLE D ON A.MKTPLANID = D.MKTPLANID AND C.PARENTID = D.PMKID where a. caption = 'Roll up'
Voici la sortie pour ma requête:
En plus de ce résultat, j'ai aussi voulu montrer l'ID du parent de la légende 'PME' seul. Donc, je veux une colonne de plus comme ID PME montrant les identifiants '04' et '07'
Basé sur les informations que vous avez données
@ JamieD77 est correct que la seule réponse possible est d'append D.ParentID à l'instruction select
C'est à cause de la dernière jointure externe
left outer JOIN GROUP_TABLE D ON A.MKTPLANID = D.MKTPLANID AND C.PARENTID = D.PMKID
Le tableau C dans ce cas sont les 2 lignes avec l'appel planifié comme légende.
Ils se lient aux lignes avec PME comme légende où ils partagent le même MKTPLANID
et où l'appel planifié PARENTID
est égal au PME PMKID
.
Par conséquent, les lignes du tableau D seront les 2 lignes avec une Caption
de PME, le PARENTID
des 2 lignes est 04 et 07.
Vous devez créer des vues en tant que pré-résultats, puis vous pouvez appliquer d'autres opérations ou vous pouvez écrire cette requête en tant que style de requête nested. il y a des dependencies d'un résultat à l'autre. donc sa stratégie d'exécution ne fonctionne pas correctement. vous pouvez écrire cette command pour vérifier la stratégie d'exécution. SET SHOWPLAN_TEXT ON