关于sqlserver数据库表去重的问题

原子and源自 2015-10-26 10:42:37

查询语句如下:
SELECT
distinct A.AccountingCode AS memberID,
A.AccountingName AS memberName,
B.Filed1 AS filed1,
B.Filed2 AS filed2,
ER.EmployeeCode as employeeCode,
ER.DepartName as departmentName,
PT.Name as positionName
FROM
Basic.FL_AccountingInfo A WITH(NOLOCK)
LEFT JOIN Basic.FL_AccountingDetail B WITH(NOLOCK)
ON A.AccountingCode = B.AccountingCode
AND A.AccountingCategoryCode = B.AccountingCategoryCode
AND A.SystemCode = B.SystemCode
AND A.AccountCode = B.AccountCode
left join Basic.FL_EmployeeResume ER with(nolock)
on A.accountingCode = ER.employeeCode
left join Basic.FL_Position PT with(nolock)
on ER.PositionCode = PT.Code
where
A.AccountingCategoryCode = 'ZY'
GROUP BY A.AccountingCode,A.AccountingName,B.Filed1,B.Filed2,ER.EmployeeCode,ER.DepartName,PT.Name
我单表查询没有出现重复的结果

但是左连接后查询就出现重复的结果了,很多人说distinct只能去重行中重复的,不能去掉列重复,那怎么去掉重复列呢,求大神们指导一下,谢谢啦!
...全文
343 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
AcHerat 2015-10-26
  • 打赏
  • 举报
回复
直接 SELECT A.AccountingCode AS memberID, A.AccountingName AS memberName, max(B.Filed1) AS filed1, max(B.Filed2) AS filed2, max(ER.EmployeeCode) as employeeCode, max(ER.DepartName) as departmentName, max(PT.Name) as positionName from ... where ... GROUP BY A.AccountingCode,A.AccountingName 试试吧!
原子and源自 2015-10-26
  • 打赏
  • 举报
回复
我要查的数据就是图片上显示的那些,去掉重复是因为这不是我要的结果,我要的结果是,如下图
AcHerat 2015-10-26
  • 打赏
  • 举报
回复
有Detail明细表,会出现一对多的情况,也就是楼主截图里一个memberID有多条记录的情况,首先楼主要明确自己要查找什么,统计什么数据,为什么要去掉重复。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧