OVH Cloud OVH Cloud

Fusion de feuilles de données

7 réponses
Avatar
Michel
Bonjour =E0 tous,

J'ai trois requ=EAte, une qui m'affiche une liste des=20
clients en r=E9activation, une qui m'affiche une liste des=20
clients en transfert et une qui m'affiche une liste des=20
clients en attente d'int=E9gration.
Mon probl=E8me est que je voudrais consulter une seule=20
feuille de donn=E9es qui regrouperait ces trois requ=EAtes en=20
gardant l'ordre de priorit=E9(r=E9activation, transfert,=20
int=E9gration). Autre probl=E8me, les trois requ=EAtes=20
affichent des champs diff=E9rents que j'aimerais =E9galement=20
consult=E9s.
En gros je voudrais ajouter la deuxi=E8me requete =E0 la=20
premi=E8re requ=EAte et ensuite y ajouter la troisi=E8me.

Est-ce possible?
Merci
Michel

7 réponses

Avatar
3stone
Salut,

"Michel"
J'ai trois requête, une qui m'affiche une liste des
clients en réactivation, une qui m'affiche une liste des
clients en transfert et une qui m'affiche une liste des
clients en attente d'intégration.
Mon problème est que je voudrais consulter une seule
feuille de données qui regrouperait ces trois requêtes en
gardant l'ordre de priorité(réactivation, transfert,
intégration). Autre problème, les trois requêtes
affichent des champs différents que j'aimerais également
consultés.
En gros je voudrais ajouter la deuxième requete à la
première requête et ensuite y ajouter la troisième.


Tu peux faire des "Union"

Select ... from req1
Union
Select ... from req2
Union
Select ... from req3
Order by ChampCommun


Comme tu vois, il te faut un champ commun, dont le contenu
peut être A, B, C ou 1, 2, 3 (ou être un champ calculé) et
qui représente les valeurs réactivation, transfert et intégration.

Car, dans une requête union, les tris individuels se perdent
et il n'est tenu compte que de l'ordre de tri de la dernière.


--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------
Avatar
Eric
"Michel" écrivait news:1042901c43f49
$d5a96ef0$:

Bonjour à tous,

J'ai trois requête, une qui m'affiche une liste des
clients en réactivation, une qui m'affiche une liste des
clients en transfert et une qui m'affiche une liste des
clients en attente d'intégration.
Mon problème est que je voudrais consulter une seule
feuille de données qui regrouperait ces trois requêtes en
gardant l'ordre de priorité(réactivation, transfert,
intégration). Autre problème, les trois requêtes
affichent des champs différents que j'aimerais également
consultés.
En gros je voudrais ajouter la deuxième requete à la
première requête et ensuite y ajouter la troisième.

Est-ce possible?
Merci
Michel


Bonjour Michel,

En complément de ce que t'indique Pierre(3Stone), il faut que tes
requêtes aient le même nombre de colonnes (ou champs), peu importe leur
contenu ou leur taille. Donc dans les requêtes où tu aurais des champs en
moins tu dois créer des champs fictifs genre "Champs Absent".
Seuls les champs de la 1ere requête serviront d'entêtes de colonne.
De plus le critère d'ordre ne peut porter que sur un des champs de la
1ere requête.

comme ci-dessous :
SELECT tarticle.RefArticle, nomArticle, tarticle.Prix
FROM tarticle
union all
select num_produit, nom_produit,"Champs Absent" from produits
union all
select idproduit, produit,DateSituation from produit
order by nomArticle;

Remarque : Le champs "Champs Absent" te transforme les valeurs numériques
en String

A+
Eric

Avatar
Michel
-----Message d'origine-----
Bonjour Michel,

En complément de ce que t'indique Pierre(3Stone), il faut
que tes

requêtes aient le même nombre de colonnes (ou champs),
peu importe leur

contenu ou leur taille. Donc dans les requêtes où tu
aurais des champs en

moins tu dois créer des champs fictifs genre "Champs
Absent".

Seuls les champs de la 1ere requête serviront d'entêtes
de colonne.

De plus le critère d'ordre ne peut porter que sur un des
champs de la

1ere requête.

comme ci-dessous :
SELECT tarticle.RefArticle, nomArticle, tarticle.Prix
FROM tarticle
union all
select num_produit, nom_produit,"Champs Absent" from
produits

union all
select idproduit, produit,DateSituation from produit
order by nomArticle;

Remarque : Le champs "Champs Absent" te transforme les
valeurs numériques

en String

A+
Eric
.
Bonjour Éric et 3stone.

J'ai enfin la liste que je voullais avoir au départ grâce
aux renseignements que vous m'avez donnés.
Malheureusement pour moi, si j'ai bien compris, il n'y a
qu'une possibilité de tri. Y aurait-il un moyen pour
pouvoir trier chaque requête avant l'Union
Merci pour les infos.
Michel

Avatar
Eric
rebonsoir Michel

Hélas non, du moins sur mes essais car même si tu tries tes requêtes avant,
l'union ne tiendra compte que de ta clause Order By que tu écris à la fin.
Et si tu n'en mets pas je crois que ca ne resoud pas le probleme.

J'ai pas de solution à te proposer malheureusement. D'autres peut-être,
voire certainement.
Eric



Malheureusement pour moi, si j'ai bien compris, il n'y a
qu'une possibilité de tri. Y aurait-il un moyen pour
pouvoir trier chaque requête avant l'Union
Merci pour les infos.
Michel


Avatar
JP
Salut Michel,

Sans champ commun aux trois feuilles de données, tu auras de la peine à t'en
sortir.
bonne soirée
JP
"Michel" a écrit dans le message de
news:104f701c43f5f$1ff43e80$

-----Message d'origine-----
Bonjour Michel,

En complément de ce que t'indique Pierre(3Stone), il faut
que tes

requêtes aient le même nombre de colonnes (ou champs),
peu importe leur

contenu ou leur taille. Donc dans les requêtes où tu
aurais des champs en

moins tu dois créer des champs fictifs genre "Champs
Absent".

Seuls les champs de la 1ere requête serviront d'entêtes
de colonne.

De plus le critère d'ordre ne peut porter que sur un des
champs de la

1ere requête.

comme ci-dessous :
SELECT tarticle.RefArticle, nomArticle, tarticle.Prix
FROM tarticle
union all
select num_produit, nom_produit,"Champs Absent" from
produits

union all
select idproduit, produit,DateSituation from produit
order by nomArticle;

Remarque : Le champs "Champs Absent" te transforme les
valeurs numériques

en String

A+
Eric
.
Bonjour Éric et 3stone.

J'ai enfin la liste que je voullais avoir au départ grâce
aux renseignements que vous m'avez donnés.
Malheureusement pour moi, si j'ai bien compris, il n'y a
qu'une possibilité de tri. Y aurait-il un moyen pour
pouvoir trier chaque requête avant l'Union
Merci pour les infos.
Michel

Avatar
Michel Walsh
Salut,


On peut par contre tricher. Note qu'on peut trier sur plus qu'un (1) champ,
mais il faut utiliser le(s) nom(s) fournis dans la première requête.


SELECT f1, f2, f3, 1 As DeQui FROM maTable1
UNION ALL
SELECT g1, g2, g3, 2 FROM maTable2
UNION ALL
SELECT h1, h2, h3, 3 FROM maTable3

ORDER BY DeQui, f1, f2



ordonnera selon le premier champ et le second champ, mais tout d'abord, "par
table" , via le quatrième champ, artificiel.

Si on veut compliquer, disons qu'on veut ordonner selon f1 et f2 pour la
première table, et selon g2 puis g1, pour la seconde, et enfin, selon h3 et
h1 pour la dernière, on peut faire:


SELECT f1, f2, f3, 1 As DeQui, f1 As premier, f2 as Second FROM maTable1
UNION ALL
SELECT g1, g2, g3, 2, g2, g1 FROM maTable2
UNION ALL
SELECT h1, h2, h3, 3, h3, h1 FROM maTable3

ORDER BY Dequi, premier, second





Espérant être utile,
Vanderghast, Access MVP







"Eric" wrote in message
news:
rebonsoir Michel

Hélas non, du moins sur mes essais car même si tu tries tes requêtes
avant,

l'union ne tiendra compte que de ta clause Order By que tu écris à la fin.
Et si tu n'en mets pas je crois que ca ne resoud pas le probleme.

J'ai pas de solution à te proposer malheureusement. D'autres peut-être,
voire certainement.
Eric



Malheureusement pour moi, si j'ai bien compris, il n'y a
qu'une possibilité de tri. Y aurait-il un moyen pour
pouvoir trier chaque requête avant l'Union
Merci pour les infos.
Michel





Avatar
Michel
-----Message d'origine-----
Salut,


On peut par contre tricher. Note qu'on peut trier sur
plus qu'un (1) champ,

mais il faut utiliser le(s) nom(s) fournis dans la
première requête.



SELECT f1, f2, f3, 1 As DeQui FROM maTable1
UNION ALL
SELECT g1, g2, g3, 2 FROM maTable2
UNION ALL
SELECT h1, h2, h3, 3 FROM maTable3

ORDER BY DeQui, f1, f2



ordonnera selon le premier champ et le second champ, mais
tout d'abord, "par

table" , via le quatrième champ, artificiel.

Si on veut compliquer, disons qu'on veut ordonner
selon f1 et f2 pour la

première table, et selon g2 puis g1, pour la seconde, et
enfin, selon h3 et

h1 pour la dernière, on peut faire:


SELECT f1, f2, f3, 1 As DeQui, f1 As premier, f2 as
Second FROM maTable1

UNION ALL
SELECT g1, g2, g3, 2, g2, g1 FROM maTable2
UNION ALL
SELECT h1, h2, h3, 3, h3, h1 FROM maTable3

ORDER BY Dequi, premier, second





Espérant être utile,
Vanderghast, Access MVP







"Eric" wrote in message
news:
rebonsoir Michel

Hélas non, du moins sur mes essais car même si tu tries
tes requêtes


avant,
l'union ne tiendra compte que de ta clause Order By que
tu écris à la fin.


Et si tu n'en mets pas je crois que ca ne resoud pas le
probleme.



J'ai pas de solution à te proposer malheureusement.
D'autres peut-être,


voire certainement.
Eric



Malheureusement pour moi, si j'ai bien compris, il
n'y a



qu'une possibilité de tri. Y aurait-il un moyen pour
pouvoir trier chaque requête avant l'Union
Merci pour les infos.
Michel





.
Cela a l'air intéressant, mais malheureusement au moment
de lire cette réponse, ma journée de travail est terminée

et une longue fin de semaine m'attends. Donc je vous en
redonne des nouvelles.