参考:http://topic.csdn.net/u/20081118/10/f5f63827-2f79-49e2-b34b-78dd67e35ef2.html 8楼我的回复.
解决方案 »
- sqlserver2005发布订阅问题
- 急急急,如何用变量作为表名(SQL2000)
- sql2005 连接问题。。急、急请各位大神帮帮忙!!!
- 安装 SQL Server 2008 怎么性能工具项啊?求高手指点!
- 从一个表里插入到另外一个表
- 请问这两条更新语句哪一个效率更高?为什么?
- 谁能在sql server 7 上跑通下面的语句,要多少分都可以!!!!!!!
- 做出了特大送分,关于 RDO!!!!!
- SQL多表插入数据怎么设置唯一标识做关联
- optimized for 8 concurrent queries 是什么问题?
- killed session引起的killed/rollback問題怎么解決
- 错误9003:LSN(39:431:1)无效,该LSN是传递给数据库'XXX'中的日志扫描操作的....急求助...
where a.f3 = b.f3 and a.f5 = '襄樊' and b.f5 = '宜昌' and b.f4 > a.f4
/*
车次 发站 出发时间 到站 到达时间
-----------------------------------------------
L360 襄樊 1130 宜昌 1530
K49 襄樊 0732 宜昌 1033
1473 襄樊 1005 宜昌 1308
(所影响的行数为 3 行)*/
表1:其中“标记”字段表示该站为起点站(1),中间站(2),和终点站(3)
ID 车次 本站ID 本车站名 本车站时刻 下一车ID 下一车站距离 硬座价格 硬卧价格上 硬卧价格中 硬卧价格下 软卧价格上 软卧价格下 标记
1 T1 1 北京 8:00 2 200 10 20 23 25 30 34 1
2 T1 2 天津 8:30 3 300 11 12 13 23 35 45 2
3 T1 3 石家庄 9:00 4 400 12 13 14 25 36 34 2
4 T1 4 郑州 9:30 0 3
5 T2 1 吉林 9:00 2 200 10 20 23 25 30 34 1
6 T2 2 长春 9:30 3 300 11 12 13 23 35 45 2
7 T2 3 哈尔滨 10:00 4 400 12 13 14 25 36 34 2
8 T2 4 北京 10:30 5 340 34 45 43 43 54 34 2
9 T2 5 天津 11:00 6 200 10 20 23 25 30 34 2
10 T2 6 石家庄 11:30 7 300 11 12 13 23 35 45 2
11 T2 7 郑州 12:00 8 400 12 13 14 25 36 34 2
12 T2 8 西安 12:30 0 3
该表中每一行都记录的是当前车次本站与下站之间的信息,
如果要查询两个任何站间的列车信息,比如北京到郑州的所有列车信息,可以按以下思路处理:
1,从该表中查询经过北京和郑州的车次和其站ID,结果是T1,1,4:T2,4,72,将该表与自己做自身连接查询,前者为起点站表,后者为终点站表,结果上面的结果就可以得到经过这两个地方的具体时刻信息:
SELECT 表1.车次, 表1.本车站名, 表1.本车站时刻, 表1_1.本车站名, 表1.下一车站距离, 表1.硬座价格
FROM 表1,表1 AS 表1_1 ,(SELECT 车次, 本站ID, 本车站名 FROM 表1 WHERE 本车站名="北京") AS 起点站 ,(SELECT 车次, 本站ID, 本车站名 FROM 表1 WHERE 本车站名="郑州") AS 终点站
WHERE (表1.车次 = 表1_1.车次) AND (表1.下一车ID = 表1_1.本站ID) AND 表1.车次=起点站.车次 AND 表1.车次=终点站.车次 AND 表1.本站ID>=起点站.本站ID AND 表1_1.本站ID<=终点站.本站ID
查询结果如下:
车次 表1.本车站名 本车站时刻 表1_1.本车站名 下一车站距离 硬座价格
T1 北京 8:00 天津 200 10
T1 天津 8:30 石家庄 300 11
T1 石家庄 9:00 郑州 400 12
T2 北京 10:30 天津 340 34
T2 天津 11:00 石家庄 200 10
T2 石家庄 11:30 郑州 300 113,如果还需要计算从北京到郑州的总票价或总里程,直接将上面的查询结果进行汇总即可。搞定。
车次表(table_A)
Id 车次 始发站 终点站 列车类型
1 T202 三亚 北京 空调特快 行驶明细表(table_B)
id Id1(与table_A关联) 车站 到时 发时 里程 时速 一等 上卧 中卧
1 1 三亚 19:28 0 98 0 0 0
2 1 东方 20:45 20:48 157 122 24 70 75
3 1 海口 22:41 22:53 363 109 54 100 105这样来设计,并不需要用到几千的表来做的,比如你查从东方到海口时,你就查询table_b来查询就可以了,而且反查询table_A,至于票价两个地方相减就可以了,也可以得到明细出来。
1 站点表,包括所有站点,2列(ID+站点名)。
2车次表,包括所有车次,2列(ID+车次)。
3车次站点组合表,报考哪个车次在哪个站点停靠,3列(ID+车次ID+站点ID)。//该列也可以将该站属于该次车的第几站一块存入。
--
4对表3的详细描述,包括从上站到该站的各种票价和里程。
---
我的思路是这样,你试试。