OVH Cloud OVH Cloud

Requete Union, champs différents et date...

1 réponse
Avatar
Florent Faivre
Bonjour à tous,

Quel objet! Et oui... tout ça à la fois...
Je vous explique mon problème...
J'ai 5 tables quasi identiques.
Dans les 2 premières, il y a 5 champs de type date en moins que dans les 3
autres tables.

J'ai absolument besoin de faire une requête Union de ces 5 tables.
Bien sur cela ne marche pas en l'état actuel (pas le même nombre de champs).
J'ai donc créé, pour chacune des 2 premières tables, 1 requête reprenant ses
champs et j'ai ajouté 5 champs de type date que j'ai mis à null
Date1:null
Date2:null
Date3:null
...

J'ai fait l'union des 2 requêtes et des 3 tables.
Bingo !!! Ca marche... pas !
Ou presque pas...
En effet les champs Date1 à Date5 existent bien dans ma requête union mais
ne sont pas de type date! (comment je le sais? des calculs sur les dates me
renvoient #Erreur; et dans l'affichage les données sont alignés à gauche au
lieu d'être aligné à droite).

Quelqu'un aurait il une idée de comment faire?
Car pour mes 2 premières requêtes, dans les champs Date1 à Date5, il ne faut
aucune valeur (donc null? ou vide?).

Merci de votre aide.

Florent

1 réponse

Avatar
Bonjour
- il n'est pas nécessaire d'avoir le même type de champ pour le retrouver en union
- normalement, le format du champ retourné sera celui du champ de la première requete union.

exemple :
SELECT champ1 FROM LATABLE1
UNION
SELECT champ2 FROM LATABLE2;

tonChamp sera de type texte si champ1 est de type texte dans latable1

- il est nécessaire d'avoir le même nombre de colonnes dans toutes les requêtes composant la requete union :
exemple :

SELECT champ1,"" as expr1,"" as expr2 FROM LATABLE1
UNION
SELECT champ2, champ3, champ4 FROM LATABLE2;

devrait fonctionner

donc : même nombre de colonnes et attention au format des champs de la première requête,
sinon, forcer le type :
SELECT cdate(champ1),cstr(champ2) as expr1,null as expr2 FROM LATABLE1

a+

--
Arnaud
---------------------------------------------
infos, conseils et liens : http://www.mpfa.info
---------------------------------------------
"Florent Faivre" a écrit dans le message de news: e61j5v$sc1$
Bonjour à tous,

Quel objet! Et oui... tout ça à la fois...
Je vous explique mon problème...
J'ai 5 tables quasi identiques.
Dans les 2 premières, il y a 5 champs de type date en moins que dans les 3
autres tables.

J'ai absolument besoin de faire une requête Union de ces 5 tables.
Bien sur cela ne marche pas en l'état actuel (pas le même nombre de champs).
J'ai donc créé, pour chacune des 2 premières tables, 1 requête reprenant ses
champs et j'ai ajouté 5 champs de type date que j'ai mis à null
Date1:null
Date2:null
Date3:null
...

J'ai fait l'union des 2 requêtes et des 3 tables.
Bingo !!! Ca marche... pas !
Ou presque pas...
En effet les champs Date1 à Date5 existent bien dans ma requête union mais
ne sont pas de type date! (comment je le sais? des calculs sur les dates me
renvoient #Erreur; et dans l'affichage les données sont alignés à gauche au
lieu d'être aligné à droite).

Quelqu'un aurait il une idée de comment faire?
Car pour mes 2 premières requêtes, dans les champs Date1 à Date5, il ne faut
aucune valeur (donc null? ou vide?).

Merci de votre aide.

Florent