我想不在下面的sql的输出中显示重复的行,所以我在那里有'distinct',但这不起作用.我输出如下:
PermitNumber PermitName CreatedOn
111 ABCD 1/2/2011
111 ABCD 3/4/2012
222 DFES 3/6/2000
Run Code Online (Sandbox Code Playgroud)
我想只有一行111,但我得到超过1行因为111有一个以上的修改,但我不在乎它是否有1或1000.
select distinct (dbo.PermitNumber(mp.PermitId)),
dbo.PermitName(mp.PermitId),
mod.[CreatedOn] as [CreatedOn]
from tblPermit mp, dbo.[tblModification] mod
where mod.PermitId = mp.PermitId
order by 1
Run Code Online (Sandbox Code Playgroud)
使用SQL Server
Distinct适用于所有列,因此您可以使用聚合函数:
select mp.PermitNumber,
mp.PermitName,
max(mod.[CreatedOn])as [CreatedOn]
from tblPermit mp
Inner join dbo.[tblModification] mod
on mod.PermitId = mp.PermitId
Group by mp.PermitNumber,
mp.PermitName
order by 1
Run Code Online (Sandbox Code Playgroud)