Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:获取与我的WHERE语句匹配的结果的重复结果_Sql_Sql Server - Fatal编程技术网

SQL Server:获取与我的WHERE语句匹配的结果的重复结果

SQL Server:获取与我的WHERE语句匹配的结果的重复结果,sql,sql-server,Sql,Sql Server,这可能有一个非常简单的解决办法,但我就是看不出来。我手头没有确切的查询,但我尽可能地将其分解,并给出了一个非常接近我的最终SELECT语句示例和一个结果问题示例。 我想做的是: 我在查询中抓取了一些不同的文档,这没有问题,因为我使用的是: WHERE d.document IN ('Document 1', 'Document 2', 'Document 3', 'Document 4') 这很好用。它把那些文件放到一个字段中,这就是我需要的 问题是我需要关于其中一份文件的具体信息。我需要知道

这可能有一个非常简单的解决办法,但我就是看不出来。我手头没有确切的查询,但我尽可能地将其分解,并给出了一个非常接近我的最终SELECT语句示例和一个结果问题示例。 我想做的是: 我在查询中抓取了一些不同的文档,这没有问题,因为我使用的是:

WHERE d.document IN ('Document 1', 'Document 2', 'Document 3', 'Document 4')
这很好用。它把那些文件放到一个字段中,这就是我需要的

问题是我需要关于其中一份文件的具体信息。我需要知道文件4中是否使用了问题。如果是,我需要在一个单独的专栏中列出这些问题的答案。问题是一张表,答案是另一张表

因此,我将所有其他未提及且与此问题无关的数据放入临时表中,以提高性能。当我使用finaltemp表到达最后一个SELECT语句时,我试图添加一个字段,该字段将为文档4提供答案。我在做这样的事情:

SELECT DISTINCT
t.*,
CASE
     WHEN t.Question = 'question 17' THEN t.answer
     ELSE NULL
END AS "Doc5Ans"
FROM #temp t
所需的结果将包含我的所有基本数据字段,它确实包含这些字段,但还有一个额外字段将给出文档5中问题的答案。显然,所有其他文档都将在该字段中接收空值,这正是我想要的

问题是:每当我有一个与问题答案匹配的文档5时,我会得到一个包含我要查找的数据的完美行,但我也会得到一个空值的重复行,而不是答案。因此,每当有一行包含文档5的答案时,就会有另一行包含所有相同的信息,除了有问题的字段为NULL

无论出于什么原因,只要我有一个匹配项,它就会给我一行正确的数据和一行空值。它总是被解释两次。我只想为其他没有也不需要的文档设置NULL,这很好,但是为什么我要为一个匹配的结果设置一个额外的NULL行呢

ID        Name.       DocName     Doc5Ans
321421    Person 1    DocOne       NULL
342611    Person 2    DocOne       NULL
373916    Person 3    DocThree     NULL
377625    Person 4    DocFive      Answer1
377625    Person 4    DocFive      NULL
最后两行就是我所说的例子。 它不应该给我第四个人一个空值。SQL以某种方式添加了我的值,但当Doc5Answer满足条件时,也添加了一行NULL。 这是怎么回事?
感谢您抽出时间阅读并提供帮助

请显示清晰的样本数据、当前输出和预期输出。这个问题在我看来并不清楚。我在帖子中添加了我的样本数据和输出。我想要的结果不是我发布的示例结果表的最后一行。不幸的是,我没有确切的查询,但我发布的这个示例是问题开始的查询部分。请向我们展示每种情况下的t.Question值。假设您在temp中有两个DOC5条目。一个是问题69,另一个是问题17。在本例中,每一行都有一个不同的行:DocFive和DocFive分别回答问题17和null。解决这一问题的一种方法是使用适当的GROUPBY语句和大小写聚合。例如,当问题='Question 17'时,选择ID、名称、DocName、Doc5Ans=MAXCASE,然后按ID、名称、DocName从临时组中结束回答;