【发布时间】:2018-10-17 08:51:15
【问题描述】:
我只想按项目对该查询进行分组,因为同一项目有两条记录,但我只想要一条。 但是当我添加 group by 子句时,它会要求我添加其他列以及哪些分组不起作用。
*
DECLARE @Year varchar(75) = '2018'
DECLARE @von DateTime = '1.09.2018'
DECLARE @bis DateTime = '30.09.2018'
select new_projekt ,new_geschftsartname, new_mitarbeitername, new_stundensatz
from Filterednew_projektkondition ps
left join Filterednew_fakturierungsplan fp on ps.new_projekt = fp.new_hauptprojekt1
where ps.statecodename = 'Aktiv'
and fp.new_startdatum >= @von +'00:00:00'
and fp.new_enddatum <= @bis +'23:59:59'
--and new_projekt= Filterednew_projekt.new_
--group by new_projekt
*
查看列 new_projekt 。第 2 行和第 3 行有相同的项目,但我希望它只出现一次。由于其他列不同,这是不可能的。 如果感兴趣的话,还有另一个coluim projectcondition id对两者都是唯一的
【问题讨论】:
-
如果列不包含在
GROUP BY中,那么它必须在聚合函数中。我们无法运行您的查询,因为我们无权访问它;所以你能详细说明一下吗?提供样本数据和预期结果。 -
WHERE 子句中的 fp 条件将 LEFT JOIN 转换为 INNER JOIN。将这些条件移至 ON 子句以获得真正的 LEFT JOIN 结果。
-
使用
GROUP BY进行聚合,使用DISTINCT选择唯一记录。 -
嗨,请查看 new_projekt 列。第 2 行和第 3 行有相同的项目,但我希望它只出现一次。由于其他列不同,这是不可能的。您了解问题吗?
-
OK 我们了解您的问题。下一个问题:对于 new_ges... 和 new_stund... 列,您有两个不同的值。合并两行时应该显示哪一个?
标签: sql sql-server ssrs-2012