求教。怎么写一个sql

llk9344187 2009-06-25 09:51:09
一张表里字段是 month ,B ,C ,D;没有主键
要检索month 为 5 ,B 为 1的数据 。条件是 month 为 5,B 为 1的C , D 字段 和 month 为 6 B = 1的 C , D字段都不同( T1.C <>T2.c,T1.D<>T2.D),并且(难的~~)只要month 为 5,B 为 1的某条数据的C , D字段 等于 month 为 6,B 为 1的某条数据的C , D字段时,就算 month 为 5,B 为 1的此条数据的C , D字段 不等于 month 为 6,B 为 1的其他某条数据时,也不应检索出来。这个sql或者存储过程怎么写啊,拜托各位了
...全文
118 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
llk9344187 2009-06-26
  • 打赏
  • 举报
回复
已经解决了,用minux这个关键字就可以解决,谢谢各位
first_xian 2009-06-26
  • 打赏
  • 举报
回复
(select B,C,D from T1) minux (select B,C,D from T2)
inthirties 2009-06-26
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 llk9344187 的回复:]
已经解决了,用minux这个关键字就可以解决,谢谢各位
[/Quote]

把sql贴出来,一起看看。
llk9344187 2009-06-25
  • 打赏
  • 举报
回复
是不管哪个月都有限制的,5月,6月是举例子用的
[Quote=引用 10 楼 wangzhizhou 的回复:]

是不是只是5月6月的有C,D不能相同的限制,还是说不管哪个月都不能是C,D相同的?
[/Quote]
llk9344187 2009-06-25
  • 打赏
  • 举报
回复
可以呀,用procedure怎么做呢[Quote=引用 9 楼 inthirties 的回复:]
引用 8 楼 inthirties 的回复:
引用 6 楼 llk9344187 的回复:

好难描述啊,
举例子吧:
month |B |C |D |
5 1 a b ...①
5 1 a c ...②
6 1 a b ...③
6 1 a d ...④

我应该检索出5月的数据是②;因为虽然①和④得C字段或D字段不同,但①和③的C字段和D字段相同,那么就不能被检索出来
不知道描述清楚了没


有些清晰了,不过还是朦朦胧胧的,有点乱,让我捋一捋

[/Quote]
wangzhizhou 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 llk9344187 的回复:]
好难描述啊,
举例子吧:
month |B |C |D |
5 1 a b ...①
5 1 a c ...②
6 1 a b ...③
6 1 a d ...④

我应该检索出5月的数据是②;因为虽然①和④得C字段或D字段不同,但①和③的C字段和D字段相同,那么就不能被检索出来
不知道描述清楚了没
[/Quote]
是不是只是5月6月的有C,D不能相同的限制,还是说不管哪个月都不能是C,D相同的?
inthirties 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 inthirties 的回复:]
引用 6 楼 llk9344187 的回复:

好难描述啊,
举例子吧:
month |B  |C  |D |
5      1  a  b  ...①
5      1  a  c  ...②
6      1  a  b  ...③
6      1  a  d  ...④

我应该检索出5月的数据是②;因为虽然①和④得C字段或D字段不同,但①和③的C字段和D字段相同,那么就不能被检索出来
不知道描述清楚了没


有些清晰了,不过还是朦朦胧胧的,有点乱,让我捋一捋
[/Quote]

一定要sql做么,最好还是应用做吧。或者是procedure来做。
inthirties 2009-06-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 llk9344187 的回复:]
好难描述啊,
举例子吧:
month |B  |C  |D |
5      1  a  b  ...①
5      1  a  c  ...②
6      1  a  b  ...③
6      1  a  d  ...④

我应该检索出5月的数据是②;因为虽然①和④得C字段或D字段不同,但①和③的C字段和D字段相同,那么就不能被检索出来
不知道描述清楚了没
[/Quote]

有些清晰了,不过还是朦朦胧胧的,有点乱,让我捋一捋
llk9344187 2009-06-25
  • 打赏
  • 举报
回复
5 楼,我要检索5月的数据,不是5月并且B=1的数据,因为也有B=2,3等等的数据,也要和6月相应的B=2,3等等数据比较
llk9344187 2009-06-25
  • 打赏
  • 举报
回复
好难描述啊,
举例子吧:
month |B |C |D |
5 1 a b ...①
5 1 a c ...②
6 1 a b ...③
6 1 a d ...④

我应该检索出5月的数据是②;因为虽然①和④得C字段或D字段不同,但①和③的C字段和D字段相同,那么就不能被检索出来
不知道描述清楚了没
qazwsxedcwys 2009-06-25
  • 打赏
  • 举报
回复
select * from t1 m
where m.month=5 and m.b=1
and not exists
(select 1 from t1 t where t.month=6 and t.b=1
and t.c<>m.c and t.d<>m.d)
welyngj 2009-06-25
  • 打赏
  • 举报
回复
呵呵,inthirties大哥。
xuqunying0545 2009-06-25
  • 打赏
  • 举报
回复
不明白意思!
inthirties 2009-06-25
  • 打赏
  • 举报
回复
呵呵呵,welyngj兄也在看呀,我看了好久,都没有把这个条件理清楚。

光描述就够复杂的了
welyngj 2009-06-25
  • 打赏
  • 举报
回复
晕,也不整理一下。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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