Sql 产生不希望的结果的查询

Sql 产生不希望的结果的查询,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,以下是我的表格: 我写了下面的查询 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.PMKI

以下是我的表格:

我写了下面的查询

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'
以下是我的查询的输出:


除了这个结果,我还想单独显示标题“PME”的父ID。因此,我希望再增加一列作为PME ID,显示ID“04”和“07”

您应该创建视图作为预结果,然后可以对其应用进一步的操作,或者可以将此查询作为嵌套查询样式编写。一个结果与另一个结果之间存在依赖关系。因此,它的执行策略不能正常工作。您可以编写此命令来检查执行策略。根据您提供的信息,在

上设置SHOWPLAN\u文本

@JamieD77是正确的,唯一可能的答案是将D.ParentID添加到select语句中

这是因为最后一个外部连接

left outer JOIN GROUP_TABLE D ON A.MKTPLANID = D.MKTPLANID AND C.PARENTID = D.PMKID 
本例中的表C为2行,标题为计划上诉

它们链接到以PME作为标题的行,在这些行中它们共享相同的
MKTPLANID
,并且计划上诉
PARENTID
等于PME
PMKID


因此,表D中的行将是带有PME标题的两行,这两行的父ID分别是04和07。

这里是一个很好的起点。这不就是[code>D.ParentID作为[PME ID]?这样做会显示标题“Roll up”的ParentID,即“01”和“08”是pulled@Akansha如果使用
A.ParentID
,而不是
D.ParentID
,则会出现这种情况。您能否显示用于获取输出的完整查询,看起来SelectId和PMKID列在SelectId中丢失了。我将尝试此操作并通知您。谢谢