SQL连接使用group by子句提供重复的行

时间:2019-02-20 13:30:13

标签: sql tsql

感谢所有帮助 我在使用联接时遇到问题

使用一个sccm查询

    select count(distinct resourceid) as ModelCount,caption0,CSDVersion0 from [dbo].[v_GS_OPERATING_SYSTEM]  
where caption0 like '%Windows Server%'
group by caption0,CSDVersion0

数据获取如下

enter image description here

所以我要获取以下数据,并且我制作了另一个表格,其中每个Windows版本的支持日期都有延长

select * from datesinfo

数据获取

enter image description here

在两个表上执行联接后,会在此写查询

    select count(distinct OS.resourceid) as ModelCount,(dt.serverinfo),CSDVersion0,dt.Extendedsupportenddate,dt.servicepacksupportenddate from [dbo].[v_GS_OPERATING_SYSTEM] OS
inner join datesinfo dt on  os.caption0=dt.serverinfo where os.caption0 like '%Windows Server%'
group by OS.caption0,OS.CSDVersion0,dt.serverinfo,dt.Extendedsupportenddate,dt.servicepacksupportenddate

我要用672行复制一行,请您解释一下为什么所有数据都是不同的

enter image description here

2 个答案:

答案 0 :(得分:0)

您正在按OS.caption0分组,这不包含在select语句中。
我认为,如果您包含此列,则2行将不会重复。
或者,也许您不想按此列分组,因此请将其从group by中删除。

答案 1 :(得分:0)

在datesinfo中,您具有相同名称的记录3和5,具有不同的servicepacksupportenddate。 每个都在您的最终结果中出现一次,这是正常的。