[SQL ] 如何結合查詢的資料
想請問一下 有沒有辦法可以將這兩個 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)
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章