关于sql查询重复数据显示只一条

用戶ID080 2017-06-08 10:12:05
这个是查询的所有数据的一个表我想查询两个相同数据只显示一行的sql 求大神告解,就是根据相同的userid 和addtime 只显示第一条数据 如代码2


userid   addtime   object
TOM 2017-06-06 会议
TOM 2017-06-06 会议
TOM 2017-06-07 出差
TOM 2017-06-07 出差
TOM 2017-06-07 出差
FAK 2017-06-06 会议
FAK 2017-06-06 会议
FAK 2017-06-06 会议
FAK 2017-06-06 会议
FAK 2017-06-07 出差
FAK 2017-06-07 出差



userid   addtime   object
TOM 2017-06-06 会议
TOM 2017-06-07 出差
FAK 2017-06-06 会议
FAK 2017-06-07 出差
...全文
1920 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
用戶ID080 2017-06-08
  • 打赏
  • 举报
回复
引用 4 楼 appetizing_fish1 的回复:



if not object_id(N'Tempdb..#Tmp_Tbl') is null
    drop table #Tmp_Tbl
Go
Create table #Tmp_Tbl
        (List_ID int identity(1,1),
         userid nvarchar(23),
         addtime Date,
         object nvarchar(22))
         
Insert #Tmp_Tbl
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-07',N'出差' union all
select N'FAK','2017-06-07',N'出差'
Go

Select * 
From #Tmp_Tbl a
Where List_ID=(Select MIN(List_ID) From #Tmp_Tbl b Where b.UserID=a.userid and b.addtime=a.addtime)


对 要的就是这种结果 谢谢您了~~~~
顺势而为1 2017-06-08
  • 打赏
  • 举报
回复



if not object_id(N'Tempdb..#Tmp_Tbl') is null
    drop table #Tmp_Tbl
Go
Create table #Tmp_Tbl
        (List_ID int identity(1,1),
         userid nvarchar(23),
         addtime Date,
         object nvarchar(22))
         
Insert #Tmp_Tbl
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-07',N'出差' union all
select N'FAK','2017-06-07',N'出差'
Go

Select * 
From #Tmp_Tbl a
Where List_ID=(Select MIN(List_ID) From #Tmp_Tbl b Where b.UserID=a.userid and b.addtime=a.addtime)


二月十六 2017-06-08
  • 打赏
  • 举报
回复
引用 2 楼 qq_37239602 的回复:
[quote=引用 1 楼 sinat_28984567 的回复:]
--测试数据
if not object_id(N'Tempdb..#T') is null
	drop table #T
Go
Create table #T([userid] nvarchar(23),[addtime] Date,[object] nvarchar(22))
Insert #T
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-07',N'出差' union all
select N'FAK','2017-06-07',N'出差'
Go
--测试数据结束
SELECT DISTINCT * from #T
大哥你真是厉害 虽然结果是这样的 但不是我想要的结果。我还有连接查询 就是想where后面能跟什么条件能消去重复的数据 只显示一行[/quote] 出现多条是因为连接 的时候表之间是一对多的关系造成的吗?那多条那个表可以做一下处理,改成一条。 建议楼主按大版帖子说的http://bbs.csdn.net/topics/391996442提供表结构和测试数据。文字性描述不够直观,这样方便大家帮助你。
用戶ID080 2017-06-08
  • 打赏
  • 举报
回复
引用 1 楼 sinat_28984567 的回复:
--测试数据
if not object_id(N'Tempdb..#T') is null
	drop table #T
Go
Create table #T([userid] nvarchar(23),[addtime] Date,[object] nvarchar(22))
Insert #T
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-07',N'出差' union all
select N'FAK','2017-06-07',N'出差'
Go
--测试数据结束
SELECT DISTINCT * from #T
大哥你真是厉害 虽然结果是这样的 但不是我想要的结果。我还有连接查询 就是想where后面能跟什么条件能消去重复的数据 只显示一行
二月十六 2017-06-08
  • 打赏
  • 举报
回复
--测试数据
if not object_id(N'Tempdb..#T') is null
drop table #T
Go
Create table #T([userid] nvarchar(23),[addtime] Date,[object] nvarchar(22))
Insert #T
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-06',N'会议' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'TOM','2017-06-07',N'出差' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-06',N'会议' union all
select N'FAK','2017-06-07',N'出差' union all
select N'FAK','2017-06-07',N'出差'
Go
--测试数据结束
SELECT DISTINCT * from #T


590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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