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