2011-01-21 43 views
1

我有虧欠,擁有一批標識符一起金錢的表(可以是1,2,3例如)使用金額和GROUP BY和IFNULL

我還有一個表,它給出一個名稱,這些團隊的標識符(所以1可以指團隊1,2可以指約翰的笑話等)

第一個表可以有多個欠款項目,我需要獲得每個團隊標識符的總欠款,並使用團隊名稱(如果存在) 。

所以我離開了連接表並使用sum子句並獲得每個團隊名稱的總數,或者如果團隊名不存在,則返回null。如果爲null,則我想利用團隊標識,所以結果看起來就像

name   total 
..................... 
team1   100 
John's jokers 1000 
99    50 

,其中99是一個團隊的標識,因爲沒有teamname並且有一個空的存在。

我嘗試使用ifnull(columnName,teamID),但使用sum子句時失敗。

任何人都可以幫助解決這個問題,請

回答

3

我認爲IFNULL()這樣使用:

select ifnull(teams.team_name, teams.team_id) from teams; 

因此,在這種情況下,嘗試檢索球隊的名稱,如果自帶返回null而是使用團隊的標識符。在這種情況下,您的查詢應該是這樣的:

select ifnull(teams.team_name, owing.team_id), sum(amount_owed) 
    from owing left join teams on owing.team_id = teams.id 
group by owing.team_id 

確保小組由來自因,而不是團隊的ID字段要求,否則你會在一個空場進行分組。

這是否解決了這個問題?

+0

太棒了!這已經解決了它的一種享受!我想我是在隊伍身份上分組。非常感謝您的幫助。 – Dave 2011-01-21 16:22:08