求一SQL语句!

carefree_fish 2009-07-20 12:23:19
原表1(路段路由表):XLBH(线路编号) LDBH(路段编号) SZGJFX(所在公交方向) LDSXH(路段顺序号)
10507 217835911 0 10
10507 217634969 0 20
……
……
10507 215221088 1 10
10507 215222628 1 20
……

原表2(站点路由表): XLID(线路编号) SZGJFX ZDID(站点编号) ZDSXH(站点顺序号)
10507 0 7FA10000 10
10507 0 809F0003 20
……
10507 1 728C0000 10
10507 1 738E0002 20
10507:表示636路的线路编码 ;0:上行 ;1:下行

原表3(站点路段对应表) ZDID(站点编号) SZLDBH(该站点所在路段编号)
9A54000 211261451

目标表4结构(路段站点路由表):
LINE_ID(线路编码) ROUTE_NO(路段/站点顺序号)ROUTE_NUMBER(路段编号) STOP_ID(站点编号) UP_DOWN(上下行)


要求:将原表1和原表2的数据并起来,以目标表4的表结构展示。
注意1:在目标表4中路段上有站点的,应按照上行站点、下行站点、所在路段 的顺序来排列。(利用原表3的数据来查询某路段上是否有站点)
注意2:在目标表4中上下行都有的路段应该修双行(代码为2)。

请各位大侠帮忙,谢谢~

...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
carefree_fish 2009-07-20
  • 打赏
  • 举报
回复
晕,点了两次,发了两遍了。。。
carefree_fish 2009-07-20
  • 打赏
  • 举报
回复
谢谢楼上的帮忙,可是不行的,不是这样的,
不是单纯的吧T1,T2的内容并起来放到T3中,
T3的顺序号,要按照公交线路从起点站到终点站经过的路段和站点的依次顺序来排列的。

原来做的时候是路段一张表,站立一张表分开的,而且上、下行都分开的,现在是要做在一张表里,顺序号很麻烦,有路段和站点的顺序,还有上下行的顺序,我不知道怎么写。

原路段路由表:上行:起始路段-途径路段1……途径路段N-终止路段(顺序号依次为10-20-……N×10)
下行: 起始路段-途径路段1……途径路段N-终止路段(顺序号依次为10-20-……N×10)
原站点路由表:上行:起始站点-途径站点1……途径站点N-终止站点(顺序号依次为10-20-……N×10
下行:起始站点-途径站点1……途径站点N-终止站点(顺序号依次为10-20-……N×10)

现在的顺序:起点站--起点站所属的路段--途径第1个路段-途径第2个路段-……-途径第N个路段上的站点(上行站点)-(下行站点)---途径第N个路段-终点站-终点站所在路段。

不知道是否表达清楚了,大家帮帮忙啊!

carefree_fish 2009-07-20
  • 打赏
  • 举报
回复
谢谢楼上的帮忙,可是不行的,不是这样的,
不是单纯的吧T1,T2的内容并起来放到T3中,
T3的顺序号,要按照公交线路从起点站到终点站经过的路段和站点的依次顺序来排列的。

原来做的时候是路段一张表,站立一张表分开的,而且上、下行都分开的,现在是要做在一张表里,顺序号很麻烦,有路段和站点的顺序,还有上下行的顺序,我不知道怎么写。

原路段路由表:上行:起始路段-途径路段1……途径路段N-终止路段(顺序号依次为10-20-……N×10)
下行: 起始路段-途径路段1……途径路段N-终止路段(顺序号依次为10-20-……N×10)
原站点路由表:上行:起始站点-途径站点1……途径站点N-终止站点(顺序号依次为10-20-……N×10
下行:起始站点-途径站点1……途径站点N-终止站点(顺序号依次为10-20-……N×10)

现在的顺序:起点站--起点站所属的路段--途径第1个路段-途径第2个路段-……-途径第N个路段上的站点(上行站点)-(下行站点)---途径第N个路段-终点站-终点站所在路段。

不知道是否表达清楚了,大家帮帮忙啊!

layo 2009-07-20
  • 打赏
  • 举报
回复
这样行吗?
SELECT *
FROM (SELECT XLID, ZDSXH, LDBH, ZDID, 2
FROM T1, T2, T3
WHERE T1.LDBH = T3.LDBH
AND T2.ZDID = T3.ZDID
AND LDBH IN (--查双行站点
SELECT LDBH
FROM (SELECT XLID, ZDSXH, LDBH, ZDID, SZGJFX
FROM T1, T2, T3
WHERE T1.LDBH = T3.LDBH
AND T2.ZDID = T3.ZDID)
GROUP BY LDBH
HAVING COUNT(ZDID) > 1
)
UNION ALL
SELECT XLID, ZDSXH, LDBH, ZDID, SZGJFX
FROM T1, T2, T3
WHERE T1.LDBH = T3.LDBH
AND T2.ZDID = T3.ZDID
AND LDBH NOT IN (--查单行站点
SELECT LDBH
FROM (SELECT XLID, ZDSXH, LDBH, ZDID, SZGJFX
FROM T1, T2, T3
WHERE T1.LDBH = T3.LDBH
AND T2.ZDID = T3.ZDID)
GROUP BY LDBH
HAVING COUNT(ZDID) > 1
)
)
GROUP BY SZGJFX, LDBH

17,377

社区成员

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

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