怎样去除sql server数据库中查询到的重复的记录呢?

zenggezhuang 2011-06-28 10:55:40
在sql语句中已经使用distinct,group by,order by来限制重复的记录,但是还是没有解决.
...全文
1520 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
laowang134 2011-07-08
  • 打赏
  • 举报
回复
 select distinct 
d.DeptName,
sta.StaffId,
f.FreqId,
d.DeptId,
(select top 1 count(*) ---select count(1)
from Attendance as a,
Frequency as f,
StaffInfo as s
left join Position as p on p.PosId=s.StaffPosId
left join Jobs as j on j.JobsId=s.StaffJobsId
where s.StaffId=a.StaffId
and DateDiff(mi,a.InTime,a.OutTime)>=p.MinWorkTime --(DateDiff(mi,a.InTime,a.OutTime)>=p.MinWorkTime or DateDiff(mi,a.InTime,a.OutTime)>=j.MinWorkTime)括在一起
or DateDiff(mi,a.InTime,a.OutTime)>=j.MinWorkTime ) --这里既然是求总数,用的着这么多连接!~?
as FactCount
from Attendance as att,
Frequency as f,
Department as d,
StaffInfo as sta,
Position as po
where att.StaffId=sta.StaffId
and sta.StaffDeptId=d.DeptId
group by sta.StaffId,d.DeptId,d.DeptName,f.FreqId ---这句话有毛用? 直接删除!!
order by sta.StaffId,d.DeptId,d.DeptName,f.FreqId
/*没研究的欲望了....*/
丰云 2011-07-08
  • 打赏
  • 举报
回复
我晕,越整理,就发现问题越多
丰云 2011-07-08
  • 打赏
  • 举报
回复
其次,
这个需求只要一次查询就可以拿到结果,
根本不需要嵌套
丰云 2011-07-08
  • 打赏
  • 举报
回复
首先:

select distinct
d.DeptName,
sta.StaffId,
f.FreqId,
d.DeptId,
(select top 1 count(*) ---这里的top 1放这里有毛用?直接删掉!!
from Attendance as a,
Frequency as f,
StaffInfo as s
left join Position as p on p.PosId=s.StaffPosId
left join Jobs as j on j.JobsId=s.StaffJobsId
where s.StaffId=a.StaffId
and DateDiff(mi,a.InTime,a.OutTime)>=p.MinWorkTime
or DateDiff(mi,a.InTime,a.OutTime)>=j.MinWorkTime )
as FactCount
from Attendance as att,
Frequency as f,
Department as d,
StaffInfo as sta,
Position as po
where att.StaffId=sta.StaffId
and sta.StaffDeptId=d.DeptId
group by sta.StaffId,d.DeptId,d.DeptName,f.FreqId ---这句话有毛用? 直接删除!!
order by sta.StaffId,d.DeptId,d.DeptName,f.FreqId
chenhongjun0624 2011-07-08
  • 打赏
  • 举报
回复
distinct
丰云 2011-07-08
  • 打赏
  • 举报
回复
不知道是那个傻冒教你这样写SQL语句,
真想扁人....
fishguo224 2011-07-08
  • 打赏
  • 举报
回复
一起等待
丰云 2011-07-08
  • 打赏
  • 举报
回复
这个语句一堆的毛病!!!
hl362496158 2011-07-08
  • 打赏
  • 举报
回复

--去除重复的username项
SELECT * FROM t_Simics AS a
WHERE (id IN
(SELECT MAX(id) AS id
FROM t_Simics AS b
WHERE (username = a.username)))

lkh930303 2011-07-06
  • 打赏
  • 举报
回复
select distinct mc from aa --查询没有重复的数据
select * from aa where mc in(select mc from aa group by mc having(*)>1)--查表里重复的数据

--结贴记得散分 我只有6分 555...
子夜__ 2011-06-28
  • 打赏
  • 举报
回复
distinct 就可以了

还有重复的 数据贴出来看看
xiaojingxaut2008 2011-06-28
  • 打赏
  • 举报
回复
也可以在查找出来之后合并单元格
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 soonfei 的回复:]
引用 5 楼 telankes2000 的回复:
这是你sql语句写的有问题
肯定是少了关联条件 检查下那些表的字段没有关联上
disticnt 严重影响速度 强烈不推荐使用 如果需要用到 说明你少了关联条件

+1
看看你的条件有没有写全
[/Quote]

无码无真相。
诺维斯基 2011-06-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 telankes2000 的回复:]
这是你sql语句写的有问题
肯定是少了关联条件 检查下那些表的字段没有关联上
disticnt 严重影响速度 强烈不推荐使用 如果需要用到 说明你少了关联条件
[/Quote]
+1
看看你的条件有没有写全
telankes2000 2011-06-28
  • 打赏
  • 举报
回复
这是你sql语句写的有问题
肯定是少了关联条件 检查下那些表的字段没有关联上
disticnt 严重影响速度 强烈不推荐使用 如果需要用到 说明你少了关联条件
ycproc 2011-06-28
  • 打赏
  • 举报
回复


--DISTINCT 是SQl的去重复函数 例:

select distinct name where from user

--去掉所有name的重复数据行,可以在后面指定某些条件也行

play1982 2011-06-28
  • 打赏
  • 举报
回复
if exists
HDNGO 2011-06-28
  • 打赏
  • 举报
回复
神话。。。
chai1338 2011-06-28
  • 打赏
  • 举报
回复
贴出代码
zenggezhuang 2011-06-28
  • 打赏
  • 举报
回复
代码根据需求就是这样写,不过这些代码是太长了.
加载更多回复(6)

62,257

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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