2013-06-23 55 views
0

我有兩個表Match_Id和Score。樣本數據問題與表按羣加入條款

Match_Id

> ID | HomeTeam |AwayTeam 
> 1 India  Srilanka 
    2 Srilanka India 
    3 Pakistan India 

分數

Match_Id Team Score 
1  India 1 
1  India 1 
1  Srilanka 1 
3  Pakistan 1 
2  India 1 
1  India 1 

我需要編寫一個查詢,這將使我

1 India (3) Srilanka (1) 
2 Srilanka (0) India (1) 
3 Pakistan (1) India (0) 

謝謝!

+0

你有試過自己寫嗎?我認爲你的第二個表中的值是不正確的.. –

+0

我不明白你想得到的結果。嘗試添加你已經嘗試 – 2013-06-23 20:01:06

+0

是的。我有和它的一個例子..但那是我的數據.. – Fahad

回答

3
select m.ID 
    , m.HomeTeam 
    , HomeTeamScore = sum(case when m.HomeTeam = s.Team then 1 else 0 end) 
    , m.AwayTeam 
    , AwayTeamScore = sum(case when m.AwayTeam = s.Team then 1 else 0 end) 
from Match_id m 
    inner join Score s on m.ID = s.Match_Id 
group by m.ID 
    , m.HomeTeam 
    , m.AwayTeam 
order by m.ID 

SQL Fiddle with demo

+0

ooohh ..你美! – Fahad