2011-09-05 125 views
1

我想使用SELECT,在SELECT內部獲取一些值(我已經完成了這一點)。
問題是,我想在mysql,sum中顯示這個數據,這就是問題所在。SUM使用子查詢

我不會發布原始代碼,但看看這個例子。

SELECT id, (SELECT COUNT(x) FROM xyz where id=usr.id) as value_1, 
(SELECT COUNT(y) FROM zyx where id=usr.id) as value_2 
FROM users AS usr 

這是工作正確的,但我想總結value_1和value_2。

當我這樣做

SELECT id, 
(SELECT COUNT(x) FROM xyz where id=usr.id) as value_1, 
(SELECT COUNT(y) FROM zyx where id=usr.id) as value_2, 
(value_1+value_2) as my_sum_value 
FROM users AS usr 

我得到了 「VALUE_1」 和 「_2」 的信息未找到。

我想不通,我可以使用

SELECT id, 
(SELECT COUNT(x) FROM xyz where id=usr.id) as value_1, 
(SELECT COUNT(y) FROM zyx where id=usr.id) as value_2, 
((SELECT COUNT(x) FROM xyz where id=usr.id) as value_1, 
(SELECT COUNT(y) FROM zyx where id=usr.id)+ 
(SELECT COUNT(y) FROM zyx where id=usr.id) as value_2) as my_sum_value 
FROM users AS usr 

但是,我必須寫「兩次」我的所有代碼。 爲什麼我不能使用名爲「value_1」和「value_2」的「別名」? 查詢後,這個值是否正確,如何訪問總和值?

+0

你可以包括你的表模式? – ajreal

+0

http://stackoverflow.com/questions/3785600/how-to-sum-multiple-subquery-rows-in-mysql –

回答

1

試試這個

SELECT id, 
    SUM(
    (SELECT COUNT(x) FROM xyz where id=usr.id), 
    (SELECT COUNT(y) FROM zyx where id=usr.id) 
    ) as my_sum_value 
FROM users AS usr 

,因爲他們是在一個子查詢,你不能使用變量...