作者eric70378 (FA)
看板Database
标题[SQL ] 如何结合查询的资料
时间Mon Jul 16 22:58:56 2012
想请问一下 有没有办法可以将这两个 SQL 简化後用一道SQL指令查询
表A 姓名 Name 学号 ID
Eric 1
Mina 2
Ruby 3
Cathy 4
Daniel 5
表B 分数score 日期 date 学号ID
97 1000101 1
76 1000202 1
88 1000103 2
99 1000203 2
78 1000115 1
87 1000201 3
66 1000202 2
100 1000302 5
原本第一个 SQL将1000101到1004001之间各个ID的分数查询出来
而第二个 SQL 是将第一次SQL 查询到的资料一笔一笔查询与上一次考试的分数
比较这一次与上一次考试的分数 相比较 是进步还是退步
所以如果有五个成绩五个成绩都要跟上一次的成绩做比较
如果上一次没有成绩 就为N/a
SQL1: select a.Name,a.ID,B.date,b.score from a,b where a.ID=B.ID
SQl2: select b.score where where B.date = (子查询)
and b.ID=(SQL1查询後输入)
子查询: select max(date) form B where date not in(
select max(date) from B where ID= ? //ID为1为范例的话 ?=1
)
请问有办法可以将两个 SQL 合并成一个 SQL 就查询出来了吗
想呈现的查询结果如下 以ID=1为例
姓名 学号 分数 日期 与上一次分数相比
Eric 1 97 1010101 N/a
Eric 1 78 1010115 -19
Eric 1 76 1010202 -2
目前是用子查询 把第二大的日期查出来
然後一笔一笔查
但是不知道该如何JOIN起来 然後可以一个 SQL 就查询出来
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.24.198.83
※ 编辑: eric70378 来自: 114.24.198.83 (07/16 23:01)