Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ORDER BY en requête UNION

4 réponses
Avatar
PatCatNat's
Bonjour,

J'ai une liste déroulante dont le contenu est une requête UNION.
J'aurais voulu trier en ordre croissant les *Film* mais access ne semble pas
accepter :o(((

Quelqu'un aurait-il une idée SVP ?

Merci

Patrice

SELECT T_Cine.NumCine AS Num, T_Cine.Titre AS Film FROM T_Cine ORDER BY
T_Cine.Titre; UNION SELECT IIf([TitreOriginal] Is Null,"",[NumCine]) AS Num,
T_Cine.TitreOriginal AS Film FROM T_Cine GROUP BY IIf([TitreOriginal] Is
Null,"",[NumCine]), T_Cine.TitreOriginal HAVING (((IIf([TitreOriginal] Is
Null,"",[NumCine]))<>"") AND ((T_Cine.TitreOriginal) Is Not Null))
ORDER BY T_Cine.TitreOriginal;

4 réponses

Avatar
3stone
Salut,

"PatCatNat's"

J'ai une liste déroulante dont le contenu est une requête UNION.
J'aurais voulu trier en ordre croissant les *Film* mais access ne semble pas
accepter :o(((

SELECT T_Cine.NumCine AS Num, T_Cine.Titre AS Film FROM T_Cine ORDER BY
T_Cine.Titre; UNION SELECT IIf([TitreOriginal] Is Null,"",[NumCine]) AS Num,
T_Cine.TitreOriginal AS Film FROM T_Cine GROUP BY IIf([TitreOriginal] Is
Null,"",[NumCine]), T_Cine.TitreOriginal HAVING (((IIf([TitreOriginal] Is
Null,"",[NumCine]))<>"") AND ((T_Cine.TitreOriginal) Is Not Null))
ORDER BY T_Cine.TitreOriginal;



Dans une requête UNION, c'est le premier "Select..." qui défini
les champs et le tri est donné par le dernier.

Tu ne peux donc pas spécifier 2 "Order By" différent.


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome

Avatar
PatCatNat's
Merci 3stone


"3stone" a écrit dans le message de
news:
Salut,

"PatCatNat's"

J'ai une liste déroulante dont le contenu est une requête UNION.
J'aurais voulu trier en ordre croissant les *Film* mais access ne semble
pas


accepter :o(((

SELECT T_Cine.NumCine AS Num, T_Cine.Titre AS Film FROM T_Cine ORDER BY
T_Cine.Titre; UNION SELECT IIf([TitreOriginal] Is Null,"",[NumCine]) AS
Num,


T_Cine.TitreOriginal AS Film FROM T_Cine GROUP BY IIf([TitreOriginal] Is
Null,"",[NumCine]), T_Cine.TitreOriginal HAVING (((IIf([TitreOriginal]
Is


Null,"",[NumCine]))<>"") AND ((T_Cine.TitreOriginal) Is Not Null))
ORDER BY T_Cine.TitreOriginal;



Dans une requête UNION, c'est le premier "Select..." qui défini
les champs et le tri est donné par le dernier.

Tu ne peux donc pas spécifier 2 "Order By" différent.


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome








Avatar
Daniel Carollo
Bonjour Patrice (et Pierre)!

Un solution serait peut-etre de partager ca en trois requetees et d'ajouter
des champs pour determiner l'ordre:
La premiere requete deviendrait:
SELECT T_Cine.NumCine AS Num, T_Cine.Titre AS Film, 1 as Req
FROM T_Cine
ORDER BY T_Cine.Titre;

La deuxieme:
SELECT IIf([TitreOriginal] Is Null,"",[NumCine]) AS Num,
T_Cine.TitreOriginal AS Film, 2 as Req
FROM T_Cine
GROUP BY IIf([TitreOriginal] Is Null,"",[NumCine]), T_Cine.TitreOriginal
HAVING (((IIf([TitreOriginal] Is Null,"",[NumCine]))<>"") AND
((T_Cine.TitreOriginal) Is Not Null))
ORDER BY T_Cine.TitreOriginal

et puis de faire ensuite une requete d'union simple entre ce deux, en
mettant un tri sur la colonne Req avant le titre (je presume que vous
desirez garder les deux listes separees).

J'espere que ca vous donne des idees...

--
Daniel :-)

Computing Technologies International - www.computing-tech.com - We
provide solutions...

"PatCatNat's" wrote in message
news:ck4jgd$idi$
Merci 3stone


"3stone" a écrit dans le message de
news:
Salut,

"PatCatNat's"

J'ai une liste déroulante dont le contenu est une requête UNION.
J'aurais voulu trier en ordre croissant les *Film* mais access ne
semble



pas
accepter :o(((

SELECT T_Cine.NumCine AS Num, T_Cine.Titre AS Film FROM T_Cine ORDER
BY



T_Cine.Titre; UNION SELECT IIf([TitreOriginal] Is Null,"",[NumCine])
AS



Num,
T_Cine.TitreOriginal AS Film FROM T_Cine GROUP BY IIf([TitreOriginal]
Is



Null,"",[NumCine]), T_Cine.TitreOriginal HAVING (((IIf([TitreOriginal]
Is


Null,"",[NumCine]))<>"") AND ((T_Cine.TitreOriginal) Is Not Null))
ORDER BY T_Cine.TitreOriginal;



Dans une requête UNION, c'est le premier "Select..." qui défini
les champs et le tri est donné par le dernier.

Tu ne peux donc pas spécifier 2 "Order By" différent.


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome












Avatar
PatCatNat's
Merci Pierre et Daniel,

En fait, Pierre m'a expliqué en clair ce que Microsoft (en foncé !!!) n'a
pas su faire dans sa boîte de dialogue...

Il suffisait ;o)))...
1/ De mettre les champs du même nom (Film : Titre et Film : TitreOriginal)
sur la *première colonne* des 2 requêtes sur lequels ont veux trier en ordre
croissant (Sans pour autant lui donner l'ordre de trier).
2/ De prendre la colonne 2 (Num : NumCine) comme colonne liée dans les
propriétés de la liste déroulante.

Ce qui me donne en final (pour ceux qui ont jeté un oeil et sont interessés)
:
------------------------------------------------------------------------
Avec une table T_Cine et 4 champs [NumCine], [Titre], [SousTitre] et
[TitreOriginal]
------------------------------------------------------------------------
Contenu de la liste déroulante :

SELECT Format([Titre],">") & IIf([SousTitre] Is Null,""," (" & [SousTitre] &
")") AS Film, T_Cine.NumCine AS Num FROM T_Cine;

UNION SELECT IIf([TitreOriginal] Is Null,"",Format([TitreOriginal],">") &
IIf([Titre] Is Null,""," (" & [Titre] & ")")) AS Film, IIf([TitreOriginal]
Is Null,"",[NumCine]) AS Num FROM T_Cine GROUP BY IIf([TitreOriginal] Is
Null,"",Format([TitreOriginal],">") & IIf([Titre] Is Null,""," (" & [Titre]
& ")")), IIf([TitreOriginal] Is Null,"",[NumCine]) HAVING
(((IIf([TitreOriginal] Is Null,"",Format([TitreOriginal],">") & IIf([Titre]
Is Null,""," (" & [Titre] & ")"))) Is Not Null) AND ((IIf([TitreOriginal] Is
Null,"",[NumCine]))<>""));
------------------------------------------------------------------------

Merci encore à tous 2

Patrice
!!!! ///
( @ @ )
-------oOOo--(_)--oOOo------

"3stone" a écrit dans le message de
news:
Salut,

"PatCatNat's"

J'ai une liste déroulante dont le contenu est une requête UNION.
J'aurais voulu trier en ordre croissant les *Film* mais access ne semble
pas


accepter :o(((

SELECT T_Cine.NumCine AS Num, T_Cine.Titre AS Film FROM T_Cine ORDER BY
T_Cine.Titre; UNION SELECT IIf([TitreOriginal] Is Null,"",[NumCine]) AS
Num,


T_Cine.TitreOriginal AS Film FROM T_Cine GROUP BY IIf([TitreOriginal] Is
Null,"",[NumCine]), T_Cine.TitreOriginal HAVING (((IIf([TitreOriginal]
Is


Null,"",[NumCine]))<>"") AND ((T_Cine.TitreOriginal) Is Not Null))
ORDER BY T_Cine.TitreOriginal;



Dans une requête UNION, c'est le premier "Select..." qui défini
les champs et le tri est donné par le dernier.

Tu ne peux donc pas spécifier 2 "Order By" différent.


--
A+
Pierre (3stone) Access MVP
~~~~~~~~~~~~~~~~~~~~~~~
http://users.skynet.be/mpfa
http://users.skynet.be/accesshome