【发布时间】:2018-03-10 03:32:13
【问题描述】:
我遇到了一个问题,我的查询结果是应有的两倍。我的直接假设是,将其相加两次以产生此结果。我正在处理从标准表中选择的视图,但我无法在其他任何地方再次对其求和。我的下一个想法是,某处的连接必须创建重复项,这允许将相同的值相加两次并产生错误。
它的视野很大,但我已将其缩小到一个区域
SELECT
F.[Person],
PP.[Team],
SUM(F.[Figure])
from (
SELECT Distinct Year([Date]) 'Year'
,Month([Date]) 'Month'
,convert(varchar(3),Datename(Month,[Date])) 'Mth'
,[Person]
from Figure F
Union all
Select Distinct
[Year]
,[Month]
,[Mth]
,[Person]
FROM Person P
)g
Left join [Person2] PP
on PP.Code = g.[Person]
GROUP BY
P.[Person],
PP.[Team]
我觉得这可能与工会有关,但我以前从未真正见过这样的事情。任何人都可以帮助解释为什么这可能会产生双重总和或我如何消除此错误?
谢谢
【问题讨论】:
-
尝试联合而不是联合所有?只是为了避免重复?
-
添加具有预期输出的样本数据
-
可能是因为persons2表的原因,如果PP.Code上有重复的话会导致总和错误
-
我会尝试收集一些数据,但这很困难,因为它很大。连接会产生重复项有什么原因吗?我以前从未经历过这种情况。这可能是因为表中的非唯一性吗?
-
感谢@MiloBellano,原来是工会所有
标签: sql sql-server sum duplicates