2011-09-05 3 views
1

Je voudrais utiliser SELECT, dans SELECT pour obtenir des valeurs (j'ai déjà fait cela).
Le problème est, je voudrais afficher ces données dans mysql, somme, et c'est le problème.SOMME utilisant la sous-requête

Je ne publierai pas de code d'origine, mais regardez cet exemple.

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 

C'est un travail correct, mais je voudrais additionner value_1 et value_2.

Quand je fais

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 

je suis d'informations sur "valeur_1" et "valeur_2" not found.

-je savoir que je peux utiliser

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 

Mais, je dois écrire « deux fois » tout mon code. Pourquoi je ne peux pas utiliser "alias" appelé "value_1" et "value_2"? Après la requête, ces valeurs sont correctes, comment accéder à la valeur de la somme?

+0

Pouvez-vous inclure votre schéma de la table? – ajreal

+0

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

Répondre

1

essayer cette

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 

vous ne pouvez pas utiliser les variables car ils sont dans une sous-requête ...

Questions connexes