SELECT S7.*,E3.*
FROM (
SELECT S5.*,S6.VC_BLID AS S6_BLID,S6.VC_BSNAME AS S6_BSNAME,S6.FL_POINTX AS S6_POINTX,S6.FL_POINTY AS S6_POINTY,S6.I_ASC AS S6_ASC
FROM (
SELECT S3.*,S4.VC_BLID AS S4_BLID,S4.VC_BSNAME AS S4_BSNAME,S4.FL_POINTX AS S4_POINTX,S4.FL_POINTY AS S4_POINTY,S4.I_ASC AS S4_ASC
FROM (
SELECT S1.*,S2.VC_BLID AS S2_BLID,S2.VC_BSNAME AS S2_BSNAME,S2.FL_POINTX AS S2_POINTX,S2.FL_POINTY AS S2_POINTY,S2.I_ASC AS S2_ASC
FROM (
SELECT VC_BLID AS S1_BSID,B.I_ID AS S1_ID,A.VC_BSNAME AS S1_BSNAME,A.I_ASC AS S1_ASC,
A.FL_POINTX AS S1FL_POINTX,A.FL_POINTY AS S1FL_POINTY,
B.VC_LOC_NAME AS START_NAME,B.FL_POINTX AS START_POINTX,B.FL_POINTY AS START_POINTY
FROM BUS_BUSSITEB A,LOCATION_SITE B
WHERE (VC_LOC_NAME='码头')
AND Sqrt((A.FL_POINTX-B.FL_POINTX)*(A.FL_POINTX-B.FL_POINTX)+
(A.FL_POINTY-B.FL_POINTY)*(A.FL_POINTY-B.FL_POINTY))<=0.002
) S1,BUS_BUSSITEB S2
WHERE S1_BSID=VC_BLID
) S3,BUS_BUSSITEB S4
WHERE (S4.VC_BLID NOT IN(
SELECT VC_BLID AS S1_BSID
FROM BUS_BUSSITEB A,LOCATION_SITE B
WHERE (VC_LOC_NAME='码头')
AND Sqrt((A.FL_POINTX-B.FL_POINTX)*(A.FL_POINTX-B.FL_POINTX)+
(A.FL_POINTY-B.FL_POINTY)*(A.FL_POINTY-B.FL_POINTY))<=0.002
))
AND Sqrt((S2_POINTX-S4.FL_POINTX)*(S2_POINTX-S4.FL_POINTX)+
(S2_POINTY-S4.FL_POINTY)*(S2_POINTY-S4.FL_POINTY))<=0.002
) S5,BUS_BUSSITEB S6
WHERE S4_BLID=S6.VC_BLID) S7,(
SELECT E1.*,E2.VC_BLID AS E2_BLID,E2.VC_BSNAME AS E2_BSNAME,E2.I_ASC AS E2_ASC,
E2.FL_POINTX AS E2FL_POINTX,E2.FL_POINTY AS E2FL_POINTY
FROM (
SELECT VC_BLID AS E1_BSID,B.I_ID AS E1_ID,A.VC_BSNAME AS E1_BSNAME,A.I_ASC AS E1_ASC,
A.FL_POINTX AS E1FL_POINTX,A.FL_POINTY AS E1FL_POINTY,
B.VC_LOC_NAME AS END_NAME,B.FL_POINTX AS END_POINTX,B.FL_POINTY AS END_POINTY
FROM BUS_BUSSITEB A,LOCATION_SITE B
WHERE (VC_LOC_NAME='星海广场')
AND Sqrt((A.FL_POINTX-B.FL_POINTX)*(A.FL_POINTX-B.FL_POINTX)+
(A.FL_POINTY-B.FL_POINTY)*(A.FL_POINTY-B.FL_POINTY))<=0.003
) E1,BUS_BUSSITEB E2
WHERE E1_BSID=E2.VC_BLID
) E3
WHERE Sqrt((E2FL_POINTX-S6_POINTX)*(E2FL_POINTX-S6_POINTX)+
(E2FL_POINTY-S6_POINTY)*(E2FL_POINTY-S6_POINTY))<=0.003
FROM (
SELECT S5.*,S6.VC_BLID AS S6_BLID,S6.VC_BSNAME AS S6_BSNAME,S6.FL_POINTX AS S6_POINTX,S6.FL_POINTY AS S6_POINTY,S6.I_ASC AS S6_ASC
FROM (
SELECT S3.*,S4.VC_BLID AS S4_BLID,S4.VC_BSNAME AS S4_BSNAME,S4.FL_POINTX AS S4_POINTX,S4.FL_POINTY AS S4_POINTY,S4.I_ASC AS S4_ASC
FROM (
SELECT S1.*,S2.VC_BLID AS S2_BLID,S2.VC_BSNAME AS S2_BSNAME,S2.FL_POINTX AS S2_POINTX,S2.FL_POINTY AS S2_POINTY,S2.I_ASC AS S2_ASC
FROM (
SELECT VC_BLID AS S1_BSID,B.I_ID AS S1_ID,A.VC_BSNAME AS S1_BSNAME,A.I_ASC AS S1_ASC,
A.FL_POINTX AS S1FL_POINTX,A.FL_POINTY AS S1FL_POINTY,
B.VC_LOC_NAME AS START_NAME,B.FL_POINTX AS START_POINTX,B.FL_POINTY AS START_POINTY
FROM BUS_BUSSITEB A,LOCATION_SITE B
WHERE (VC_LOC_NAME='码头')
AND Sqrt((A.FL_POINTX-B.FL_POINTX)*(A.FL_POINTX-B.FL_POINTX)+
(A.FL_POINTY-B.FL_POINTY)*(A.FL_POINTY-B.FL_POINTY))<=0.002
) S1,BUS_BUSSITEB S2
WHERE S1_BSID=VC_BLID
) S3,BUS_BUSSITEB S4
WHERE (S4.VC_BLID NOT IN(
SELECT VC_BLID AS S1_BSID
FROM BUS_BUSSITEB A,LOCATION_SITE B
WHERE (VC_LOC_NAME='码头')
AND Sqrt((A.FL_POINTX-B.FL_POINTX)*(A.FL_POINTX-B.FL_POINTX)+
(A.FL_POINTY-B.FL_POINTY)*(A.FL_POINTY-B.FL_POINTY))<=0.002
))
AND Sqrt((S2_POINTX-S4.FL_POINTX)*(S2_POINTX-S4.FL_POINTX)+
(S2_POINTY-S4.FL_POINTY)*(S2_POINTY-S4.FL_POINTY))<=0.002
) S5,BUS_BUSSITEB S6
WHERE S4_BLID=S6.VC_BLID) S7,(
SELECT E1.*,E2.VC_BLID AS E2_BLID,E2.VC_BSNAME AS E2_BSNAME,E2.I_ASC AS E2_ASC,
E2.FL_POINTX AS E2FL_POINTX,E2.FL_POINTY AS E2FL_POINTY
FROM (
SELECT VC_BLID AS E1_BSID,B.I_ID AS E1_ID,A.VC_BSNAME AS E1_BSNAME,A.I_ASC AS E1_ASC,
A.FL_POINTX AS E1FL_POINTX,A.FL_POINTY AS E1FL_POINTY,
B.VC_LOC_NAME AS END_NAME,B.FL_POINTX AS END_POINTX,B.FL_POINTY AS END_POINTY
FROM BUS_BUSSITEB A,LOCATION_SITE B
WHERE (VC_LOC_NAME='星海广场')
AND Sqrt((A.FL_POINTX-B.FL_POINTX)*(A.FL_POINTX-B.FL_POINTX)+
(A.FL_POINTY-B.FL_POINTY)*(A.FL_POINTY-B.FL_POINTY))<=0.003
) E1,BUS_BUSSITEB E2
WHERE E1_BSID=E2.VC_BLID
) E3
WHERE Sqrt((E2FL_POINTX-S6_POINTX)*(E2FL_POINTX-S6_POINTX)+
(E2FL_POINTY-S6_POINTY)*(E2FL_POINTY-S6_POINTY))<=0.003
Bus_LinePoint线路表存储公交运行路径
Location_Site存储目标地址查找二次换乘时的线路!
(A.FL_POINTY-B.FL_POINTY)*(A.FL_POINTY-B.FL_POINTY)) ---这儿做个视图
FROM S3,A,A, S7, E3
WHERE Sqrt(...) <=0.003 and
A.VC_BLID NOT IN(S00) and
A.BLID=A.VC_BLID
SELECT ... FROM S1, A S2 WHERE S1.=..) S3
SELECT ... FROM A, B WHERE (VC_LOC_NAME='码头') AND Sqrt(...) <=0.002 ) S00
SELECT ... FROM A, B WHERE (VC_LOC_NAME='星海广场') AND Sqrt(...) <=0.003 and BSID = A.VC_BLID E3
FROM S3,A S5,A S6, S7, E3
WHERE Sqrt(...) <=0.003 and
S4.VC_BLID NOT IN(S00) and
S4_BLID=S6.VC_BLID上述语句可以进一步简化为SELECT S7.*,E3.*
FROM S7,E3 WHERE Sqrt(...)<=0.003
E3中已包含where条件 S7是S4与S6进行Select+where条件 而S4和S6都是A表!因此S7直接简单为select .. from A where 最后我的结论是 你的语句基本没有意义 需要找个人重新帮你写!