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

zenggezhuang 2011-06-28 10:55:40
在sql语句中已经使用distinct,group by,order by来限制重复的记录,但是还是没有解决.
...全文
1504 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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)
一、实验目的 1.掌握SQL Server 2005的安装。 2.掌握SQL Server Management Studio的启动和使用。 3.掌握SQL Server 2005服务器的配置和注册。 4.掌握SQL Server 2005查询的基本使用。 5.掌握应用SQL Server Management Studio创建数据库的方法。 6.掌握应用SQL Server Management Studio修改和查看数据库的方法。 7.掌握应用SQL Server Management Studio删除数据库的方法。 8.掌握应用Transact-SQL语句创建数据库的方法。 9.掌握应用Transact-SQL修改和查看数据库的方法。 10.掌握通过Transact-SQL删除数据库的方法。 11.掌握SQL Server 2005数据库和操作系统物理文件的关系。 12.掌握数据库的分离和附加方法。 二、实验内容 1.完成SQL Server 2005开发版的安装。 提示:若计算机系统已经安装有SQL Server 2005系统,则在安装时需要选择安装命名实例。安装过程身份验证模式选择“混合模式”并设置sa账户的密码。 2.利用SQL Server配置管理器启动、停止SQL Server服务(包括默认实例和命名实例),配置SQL Server服务为自动启动。 3.利用SQL Server配置管理器配置进行SQL Server 2005网络配置,启用默认实例和命名实例的TCP/IP协议。 4.利用SQL Server外围配置器配置数据库引擎的服务及远程连接,设置为“本地连接和远程连接”,选择“同时使用TCP/IP和named pipes”。 5.利用SQL Server Management Studio注册安装的命名实例。 6.利用SQL Server Management Studio注册远程服务器。 提示:注册远程服务器时需要使用混合验证模式,利用sa账户和密码登录远程服务器。 7.启动SQL Server Management Studio,连接到服务器。新建一个查询,在其输入如下代码: DECLARE @position int, @string char(5) SET @position = 1 SET @string = 'China' WHILE @position <= DATALENGTH(@string) BEGIN SELECT SUBSTRING(@string, @position, 1) 字符, ASCII(SUBSTRING(@string, @position, 1)) ASCII码 SET @position = @position + 1 END

62,243

社区成员

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

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

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

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