GROUP BY et sous-requête

RPG (3 et 4, free), CL, SQL, etc...
Répondre
N1kos
Messages : 34
Enregistré le : ven. 08 févr. 2013, 09:41:45

GROUP BY et sous-requête

Message 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.
N1kos

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Alias et GROUP BY

Message 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
Christian Massé (Volubis.fr)

N1kos
Messages : 34
Enregistré le : ven. 08 févr. 2013, 09:41:45

(sans texte)

Message par N1kos »

En effet, cette solution via une table temporaire fonctionne parfaitement également.
Merci
N1kos

Répondre