Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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查询将出现重复结果_Sql_Sql Server - Fatal编程技术网

SQL查询将出现重复结果

SQL查询将出现重复结果,sql,sql-server,Sql,Sql Server,我有一个问题写在下面。它给了我两次相同的值。请看一看 SELECT distinct T0.[ItemCode],T0.[Dscription] ,T0.[Project], T0.[Quantity] as [Recipts], T0.[DocDate], T0.[Project], T1.[Quantity] as [Issues] ,(T0.[Quantity] -T1.[Quantity]) as 'ABC' FROM [dbo].[IGN1] T0 INNER JOIN IG

我有一个问题写在下面。它给了我两次相同的值。请看一看

SELECT distinct T0.[ItemCode],T0.[Dscription] ,T0.[Project],  T0.[Quantity] as [Recipts], T0.[DocDate], T0.[Project], T1.[Quantity] as [Issues] ,(T0.[Quantity] -T1.[Quantity]) as 'ABC' 
FROM [dbo].[IGN1]  T0 
INNER JOIN  IGE1 T1 ON T0.[DocDate] = T1.[DocDate] 
where T0.WhsCode = 'RecBay' 
and T0.[DocDate] = '13jan2016' 
and T0.[ItemCode] = 'Abebatest' 
and T0.[Project] = 'GHS01' 
GROUP BY T0.[ItemCode], T0.[Dscription] ,T0.[Project] ,T0.[DocDate] ,T0.[Dscription] ,T0.[Quantity], T1.[Quantity]
我得到以下输出


DISTINCT
作用于整行,而不仅仅作用于
ItemCode

在您的情况下,如果逐列比较,则所有记录都是唯一的

更新

DISTINCT
仅返回结果集唯一的记录。例如,如果您有下表:

+------+------+
| Col1 | Col2 |
+------+------+
|    1 | a    |
|    1 | b    |
|    2 | c    |
|    2 | c    |
+------+------+
然后对其运行以下脚本:

SELECT DISTINCT Col1, Col2 FROM TABLE
只返回第1、2和3行。(尽管第1行和第2行的
Col1
是相同的,
Col2
使第1行和第2行的
不同。)


最后,
DISTINCT
应用于结果集,而不是基表。这意味着在您的实例中,列
abc
是问题的原因,即使它是一个计算字段。

Distinct
消除了重复的行!这意味着只有当所有列的值相等时,行才会被删除。 这意味着,如果任何其他列的值不相等,则可以有10行具有相同的
T0。[ItemCode]
。但不可能每列都有相同值的行。另外,
groupby
在多列上使用时,无法消除单列的重复项。
不要在
T0.[Quantity],T1.[Quantity]
上使用
Group By
,使用聚合。

什么值?结果绝对是独一无二的。您可能只是不理解这个查询。样本数据和期望的结果可以帮助您。什么?拜托,这就是你能和我们分享的信息吗?很好的查询,但是它完全没有告诉你的系统,涉及的表的结构,约束等等。请阅读。你能提供一些数据和理想的输出吗?它们显然不是重复的。在每条记录中,
abc
列的值不同。它们是否不同?是的,他们是。它们是否满足作为单独结果的要求?对
DISTINCT
用于整个记录,而不仅仅用于第一列。如果要分组,请使用分组依据。1,3,5行只有一个条目。。为什么它给了我两次相同的值?它的值不一样,issue和abc列不同@Kiratabc是两列的减法。。你能再检查一下查询吗?是的,我看到了,在表ige1中有两行过滤器,一行数量为50,一行数量为100,在ign1中有3行,一行数量为100,一行数量为200,另一行数量为2000。你没有给我们想要的输出和输入,所以我们无法知道你想要什么。但您的查询与@Kirat的假设相同
SELECT DISTINCT Col1, Col2 FROM TABLE