Problème requète avec Group By [Résolu]

Messages postés
9
Date d'inscription
dimanche 3 février 2008
Dernière intervention
10 juillet 2012
- - Dernière réponse : alpyard
Messages postés
1
Date d'inscription
mercredi 15 avril 2009
Dernière intervention
12 avril 2012
- 12 avril 2012 à 07:51
Bonsoir,

Je suis actuellement bloqué sur une requête que je vous ai simplifié pour les besoins de compréhension.
En oracle, il est impossible d'effectuer un group by sur des alias.

=> Requete de base :
SELECT dro_id as dro_id2, SUM(10+4) AS mntht FROM droitayantdroit
GROUP BY dro_id2
;

=> Rendu
Erreur sur l'alias


------- Solution de contournement
SELECT dro_id2, mntht
FROM
(SELECT dro_id as dro_id2, SUM(10+4) AS mntht FROM droitayantdroit)
GROUP BY dro_id2, mntht
;

=> ORA-00937 : la fonction de groupe ne porte pas sur un groupe simple


Pourtant cette version marche
select dro_id2, mntht
from
(select sysdate as dro_id2, sum(10+4) as mntht from droitayantdroit)
group by dro_id2, mntht;


J'en déduis que c'est dès lors que j'appelle une colonne de ma table droitayantdroit que l'erreur m'est remontée.

Avez-vous une idée du pourquoi ?

En vous remerciant
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
1
Date d'inscription
mercredi 15 avril 2009
Dernière intervention
12 avril 2012
3
Merci
SELECT dro_id as dro_id2, SUM(10+4) AS mntht FROM droitayantdroit
GROUP BY dro_id

devrait fonctionner
on ne groupe jamais avec l'alias, c'est curieux mais c'est comme ça.


par exemple

il faut écrire
SELECT (case when dro_id > 0 then 1 else 0 end) as dro_id2, SUM(10+4) AS mntht FROM droitayantdroit
GROUP BY (case when dro_id > 0 then 1 else 0 end)

pour que le group by fonctionne

Merci alpyard 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

Commenter la réponse de alpyard

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.