100分求一条select的SQL语句 (100分)

  • 主题发起人 主题发起人 superplayboy
  • 开始时间 开始时间
S

superplayboy

Unregistered / Unconfirmed
GUEST, unregistred user!
线路 站次 地点 ID
1 1 AA 1
1 2 BB 2
1 3 CC 3
49 1 EE 4
49 2 FF 5
49 3 XX 6
49 4 YY 7
80 1 YY 8
80 2 EE 9
80 3 FF 10
............
如何select出 同一条线路中由地点A出发,到地点B结束的记录?
例如选出所有从FF出发,到YY结束的记录,那么就是线路为49的符合
条件,即ID为4,5,6,7的记录被select出来,而线路为80的未被select
注意:是FF出发,YY结束,有方向性的,所以上面的80没被select

是ACCESS数据库
 
select a.线路
from table a,table b
where a.id=b.id
and a.线路=b.线路
and a.地点=AA
and b.地点=bb
试一下! 应该可以! 
 
select 线路 from (select 线路,地点 from dbf where 地点=A) a,
(select 线路,地点 from dbf where 地点=B) b where a.线路=b.线路
 
to players
我指只有一个表。

to jammi
我用你的方法试了,出错。

我原来是用这样一条语句
select 线路 from TABLE1 where 地点=A and 线路 in (select 线路 from TABLE1 where 地点=B)
这条语句可以选出途经任何2站的线路,但是没有方向性,也就是说我要从A到B,它会连
从B到A的线路也选择出来
 
哈哈哈,搞定了,把jammi的语句改了改就行了,把第一个select的线路改成*或者a.线路
并加一个条件

select * from (select 线路,站次 from dbf where 地点=A) a,
(select 线路,站次 from dbf where 地点=B) b where a.线路=b.线路 and a.站次<=b.站次

补充:
这样select出来的只有一条记录,如果按照我第一帖的要求,则再要加一个条件
select * from (select 线路,站次 from dbf where 地点=A) a,
(select 线路,站次 from dbf where 地点=B) b,TABLE1 c where a.线路=b.线路 and a.站次<=b.站次 and c.线路=a.线路

最后那里改成“=b.线路”也行,效果一样
 

Similar threads

S
回复
0
查看
745
SUNSTONE的Delphi笔记
S
S
回复
0
查看
754
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部