Page 1 sur 1

GROUP BY et sous-requête

Posté : ven. 13 déc. 2013, 16:02:48
par N1kos
Bonjour,

J'ai une requête qui contient (1..N) sous-requête, comme ci-dessous:

Code : Tout sélectionner

SELECT AR.code_article as a01
         ,  AR.code_client as a02
         ,  (SELECT libelle_client FROM CLIENT CL WHERE CL.code_client = AR.code_client) as a03
FROM ARTICLE
WHERE 1 = 1
GROUP BY a01, a02, (SELECT libelle_client FROM CLIENT CL WHERE CL.code_client = AR.code_client)
Il est impossible de faire ça:

Code : Tout sélectionner

SELECT code_article as a01
         ,  code_client as a02
         ,  (SELECT libelle_client FROM CLIENT) as a03
FROM ARTICLE
WHERE 1 = 1
GROUP BY a01, a02, a03
Existe t-il une solution permettant de ne pas copier l'ensemble de la sous-requête dans le group by ?

Merci d'avance.

Alias et GROUP BY

Posté : lun. 16 déc. 2013, 09:08:56
par cmasse
En effet les ALIAS ne sont admis (à ce jour ?) que dans la clause ORDER BY

je propose

Code : Tout sélectionner

With temp as (
SELECT AR.code_article as a01
         ,  AR.code_client as a02
         ,  (SELECT libelle_client FROM CLIENT CL WHERE CL.code_client = AR.code_client) as a03
FROM ARTICLE
WHERE 1 = 1
)

SELECT * FROM temp GROUP BY a01,a02,a03

(sans texte)

Posté : lun. 16 déc. 2013, 11:53:05
par N1kos
En effet, cette solution via une table temporaire fonctionne parfaitement également.
Merci