SQL查询不重复的数据问题 20分,无满意结帖,结帖人xiaoliang_run]

发布时间:2017-6-26 11:26:00 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"SQL查询不重复的数据问题 20分,无满意结帖,结帖人xiaoliang_run]",主要涉及到SQL查询不重复的数据问题 20分,无满意结帖,结帖人xiaoliang_run]方面的内容,对于SQL查询不重复的数据问题 20分,无满意结帖,结帖人xiaoliang_run]感兴趣的同学可以参考一下。

我想查询一个表的某个字段,该字段的值不能重复,但是有另一个字段,另一个字段值不相同的时候可以重复。 例如 id       id1       num      date                       type 1 1001 100 2010-01-01 00:00:00.000 1 1 1002 100 2010-01-01 00:00:00.000 1 1 1003 NULL 2010-01-01 00:00:00.000 1 2 1001 NULL 2010-01-02 00:00:00.000 1 2 1002 100 2010-01-02 00:00:00.000 1 2 1003 NULL 2010-01-02 00:00:00.000 1 1 1001 100 2010-01-01 00:00:00.000 2 1 1002 100 2010-01-01 00:00:00.000 2 1 1003 100 2010-01-01 00:00:00.000 2 现在我要查询 日期不重复,但type不同的时候可以重复。

结果呢

select * from tb t where not exists(select 1 from tb where type=t.type and datediff(dd,[date],t.[date])=0 and id1>t.id1)

頂樓上- -

---测试数据--- if object_id('[tb]') is not null drop table [tb] go create table [tb]([id] int,[id1] int,[num] int,[date] datetime,[type] int) insert [tb] select 1,1001,100,'2010-01-01 00:00:00.000',1 union all select 1,1002,100,'2010-01-01 00:00:00.000',1 union all select 1,1003,null,'2010-01-01 00:00:00.000',1 union all select 2,1001,null,'2010-01-02 00:00:00.000',1 union all select 2,1002,100,'2010-01-02 00:00:00.000',1 union all select 2,1003,null,'2010-01-02 00:00:00.000',1 union all select 1,1001,100,'2010-01-01 00:00:00.000',2 union all select 1,1002,100,'2010-01-01 00:00:00.000',2 union all select 1,1003,100,'2010-01-01 00:00:00.000',2   ---查询--- select * from tb t where not exists(select 1 from tb where type=t.type and datediff(dd,[date],t.[date])=0 and id1>t.id1) ---结果--- id          id1         num         date                                                   type         ----------- ----------- ----------- ------------------------------------------------------ -----------  1           1003        NULL        2010-01-01 00:00:00.000                                1 2           1003        NULL        2010-01-02 00:00:00.000                                1 1           1003        100         2010-01-01 00:00:00.000                                2 (所影响的行数为 3 行)

老大,这个太复杂了吧!用linq 怎么实现啊

按日期和type分组就行呗。

select * from tb t where not exists(select 1 from tb where type=t.type and datediff(dd,[date],t.[date])=0 and id1>t.id1)

--设表名为tt select * from tt a where     (select count(*) from tt where [type]=a.[type] and [date]=a.[date])=1

学习了!,顶个!学习了!,顶个!

学习了

学习学习

引用 5 楼 xiaoliang_run 的回复:老大,这个太复杂了吧!用linq 怎么实现啊 linq不懂,帮顶

select date,type from 表名 group by date,type having count(date)>1 以上查询重复的日期+type重复   以下查询日期+Type不重复 select date,type from 表名 group by date,type having count(date)=1

引用 5 楼 xiaoliang_run 的回复:老大,这个太复杂了吧!用linq 怎么实现啊 linq是什么?

上一篇:SQL语言 40gao554338101]
下一篇:关于SQL存储过程的小问题? 20RFFfang]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。