|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
雨
註冊時間: 2006-01-11 文章: 2
第 1 樓
|
發表於: 星期三 一月 11, 2006 4:58 pm 文章主題: SQL高手請進 我遇到麻煩了! |
|
|
現有兩個資料表1. results 2.teams
results 資料表如下
matchID Team1 Team2 Team1goals Team2goals
1 1 2 2 10
2 1 3 4 1
3 4 5 0 4
4 5 6 5 5
teams 資料表如下
Team ID TeamName
1 兄弟
2 興農
3 誠泰
4 Lanew
5 中信
6 統一
希望做出來的結果...
TeamNane 出賽場次 Win 平手 Lost 積分
兄弟 2 1 0 1 3
興農 1 1 0 0 3
誠泰 1 0 0 1 0
Lanew 1 0 0 1 0
中信 2 1 1 0 4
統一 1 0 1 0 1
以下是確定可以做出出賽常次之後的表單
Select R.team1,count(*)as 出賽場次,
sum(case
when Team1goals>team2goals then 1
else 0
end)
AS win,
sum(case
when Team1goals=team2goals then 1
else 0
end)
AS 平手,
sum(case
when Team1goals<team2goals then 1
else 0
end)
AS lost,
sum(case
when Team1goals>Team2goals then 3
when Team1goals=Team2goals then 1
else 0
end)
AS 積分
From((select*From results )
Union All
(Select matchID,Team2,Team1,Team2goals,Team1goals From results)) AS R
Group By R.team1
麻煩知道的大大了! |
|
回頂端 |
|
|
bin1x
註冊時間: 2004-08-27 文章: 462
第 2 樓
|
發表於: 星期三 一月 11, 2006 11:11 pm 文章主題: |
|
|
又是一個騙人的
會寫出那樣的式子
而
後來再加個
where r.team1=teams.teamid
說不會,真不敢相信(所以騙人說不會)
原先在想為何一個是select *
另一個卻要寫出來,後來看到了
原因是顛倒,因為是vs
沒有聯集起來的話,是一場比賽單隊的戰績
還要有對戰時另一隊的戰績
我又偷學一招了 |
|
回頂端 |
|
|
雨
註冊時間: 2006-01-11 文章: 2
第 3 樓
|
發表於: 星期四 一月 12, 2006 1:53 am 文章主題: |
|
|
bin1x 寫到: | 又是一個騙人的
會寫出那樣的式子
而
後來再加個
where r.team1=teams.teamid
說不會,真不敢相信(所以騙人說不會)
原先在想為何一個是select *
另一個卻要寫出來,後來看到了
原因是顛倒,因為是vs
沒有聯集起來的話,是一場比賽單隊的戰績
還要有對戰時另一隊的戰績
我又偷學一招了 |
where 我有試過,可是結果是不行的! |
|
回頂端 |
|
|
bin1x
註冊時間: 2004-08-27 文章: 462
第 4 樓
|
發表於: 星期四 一月 12, 2006 9:24 am 文章主題: |
|
|
代碼: |
Select r.team1,teams.teamname,count(*)as 出賽場次,
..
...
....
From((select*From results )
Union All
(Select matchID,Team2,Team1,Team2goals,Team1goals From results)) AS R,teams
where r.team1 = teams.teamid
Group By r.team1,teams.teamname
order by r.team1
|
我弄到大概就這樣子了
我還是覺得那個交換很妙 |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|