我有二個問題:
一、請問有什麼sql的討論區嗎??
二、我有一個資料如下
日期部份是用LEFT的方式去抓取年度跟月份的總成績
下面是已經用一個SQL取得的資料,但我想合併如下
請問有什麼方式可以一次sql完成我要的資料?
姓名 科名 成績 日期
A 國文 98 07/09/12
A 國文 100 06/09/01
合併成如下
姓名 科名 07年成績 06年成績 07-06成績 百分比
A 國文 98 100 2 2%
2007-01-24 03:43:56 · 2 個解答 · 發問者 風 1 in 電腦與網際網路 ➔ 程式設計
不是這樣的,我的意思是,我上面的資料,是已經用了一個sql取得
,現在要合併他,所以是兩個sql合併起來。因為我的第一個sql用了很多的join,但要合併的話要如何做
2007-01-24 07:54:55 · update #1
1.
程式設計俱樂部
如果你指的是SQL語法本身:
http://www.programmer-club.com/pc2020v5/Forum/ForumN.asp?board_pc2020=sqllanguage
如果你指的是MS-SQL這套資料庫系統:
http://www.programmer-club.com/pc2020v5/Forum/ForumN.asp?board_pc2020=sqlserver
2.
以下為MS-SQL 語法
假設你抓出來的資料表名稱叫 總成績
Select A.姓名, A.科名,B.成績 As [07年成績] , A.成績 As [06年成績] , ABS(B.成績 - A.成績) AS [07 - 06年成績] , Cast(ABS(B.成績 - A.成績) *100 /A.成績 As varchar(4)) + '%' As 百分比 From
(Select 姓名 ,科名, 成績 From 總成績 Where 日期 like '06%') A
Join
(Select 姓名 ,科名, 成績 From 總成績 Where 日期 like '07%') B
On A.姓名 =B.姓名 And A.科名=B.科名
2007-01-24 16:10:56 補充:
以MS-SQL來說
可以將你用SQL篩選出來的總成積的資料存成顯示表(View)
相當於Access的"查詢"
之後就可以將它當作一個資料表來作select
2007-01-24 06:05:00 · answer #1 · answered by ALEXLEE 5 · 0⤊ 0⤋
狼鷹的回答與補充都是正確的。
除了以上方法,你也可以這樣做:
你可以把你那一大串join起來的sql包在子查詢中來使用,即是把它當成一個資料來源,或視為一個table,例如(select ...join...) s1。
那你就可以寫出新的sql來解決你的問題,例如:
select ...
from
(
SELECT *
FROM (select ...join...) s1
WHERE ....
) X
inner join
(
SELECT *
FROM (select ...join...) s2
WHERE ....
) Y
on ....
以上所有的sql寫法,對於一個交易處理系統是難以維護的,因為這樣是要把正規化的資料結構顯示為非正規化的形式。雖然sql語法寫得出來,但你要考慮到後續維護的問題。
2007-01-27 00:51:11 · answer #2 · answered by yoo 3 · 0⤊ 0⤋