OVH Cloud OVH Cloud

Réunir 3 bases différentes en une seule par requète ?

7 réponses
Avatar
SCAN
bonjour,

J'ai 3 bases : NOTES RDV et ACTION

Chacune contient l'ID d'un client
Elles ont des champs différents, quoique chacune à un champ DATE

Est il possible de faire une requête qui afficherait dans l'ordre
chronologique tous les évenements (NOTE, RDV et ACTION) d'un même client ?

Ou via une autre solution ?

Merci

Sandrine.

7 réponses

Avatar
SCAN
Oups, j'ai oublié de préciser que je suis sous Access 97


"SCAN" a écrit dans le message de
news:ca96rd$caf$
bonjour,

J'ai 3 bases : NOTES RDV et ACTION

Chacune contient l'ID d'un client
Elles ont des champs différents, quoique chacune à un champ DATE

Est il possible de faire une requête qui afficherait dans l'ordre
chronologique tous les évenements (NOTE, RDV et ACTION) d'un même client ?

Ou via une autre solution ?

Merci

Sandrine.




Avatar
Zeus
Salut,

il suffit de faire une requete union entre tes 3 tables
tu selectionnes les champs communs aux trois 3 tables que tu veux faire
apparaitre dans chaque partie de ta requete

"Select * from [notes]

UNION ALL

SELECT * FROM [RDV]

UNION ALL

SELECT * FROM [ACTION]"
Avatar
SCAN
Oui mais si il n'y a pas de champs communs ?

Peut on "demander" la création d'une liste contenant :

un champ date (se trouvant dans chaque base mais pas sous le même nom de
champ)
un champ commentaire (résultant de la concaténation de tout les autres
champs de l'enregistrement de la base)

Avec selection sur le N° client commun à chaque base
et trié par date ??

Sandrine.
"Zeus" a écrit dans le message de
news:
Salut,

il suffit de faire une requete union entre tes 3 tables
tu selectionnes les champs communs aux trois 3 tables que tu veux faire
apparaitre dans chaque partie de ta requete

"Select * from [notes]

UNION ALL

SELECT * FROM [RDV]

UNION ALL

SELECT * FROM [ACTION]"





Avatar
SCAN
Cela peut être le fruit d'une requête ou d'un état mais je ne sais comment
faire et crois bien que cela est impossible, non ?


"SCAN" a écrit dans le message de
news:ca9blm$fq4$
Oui mais si il n'y a pas de champs communs ?

Peut on "demander" la création d'une liste contenant :

un champ date (se trouvant dans chaque base mais pas sous le même nom de
champ)
un champ commentaire (résultant de la concaténation de tout les autres
champs de l'enregistrement de la base)

Avec selection sur le N° client commun à chaque base
et trié par date ??

Sandrine.
"Zeus" a écrit dans le message de
news:
Salut,

il suffit de faire une requete union entre tes 3 tables
tu selectionnes les champs communs aux trois 3 tables que tu veux faire
apparaitre dans chaque partie de ta requete

"Select * from [notes]

UNION ALL

SELECT * FROM [RDV]

UNION ALL

SELECT * FROM [ACTION]"









Avatar
SCAN
Je crois avoir trouver une solution mais je n'arrive pas à la programmer :

J'ai crée une table temporaire "HISTORIQUE" (ou un tableau via DIM) composé
de 3 champs : DATE & DESCRIPTION & ETAT (DATE et ETAT sont communs à mes
bases NOTE RDV et ACTION). Celle ci ne sera ouverte ensuite qu'en lecture.

Je parcours la table NOTE, je recherche les enregistrements concernant un
même client.
Pour chaque enregistrement correspondant je remplis la table HISTORIQUE avec
:
DATE = date de la prise de note
DESCRIPTION = concaténation de tout les champs de la base NOTE (hormis les
champs DATE et ETAT)
ETAT = etat de la note

Je fais de même pour la base RDV puis ACTION.

Je trie ma base HISTORIQUE sur la DATE et l'affiche.

A chaque changement de client, je supprime la base (ou tableau).

Qu'en pensez vous ?

Sandrine.


"SCAN" a écrit dans le message de
news:ca9bnu$fr8$
Cela peut être le fruit d'une requête ou d'un état mais je ne sais comment
faire et crois bien que cela est impossible, non ?


"SCAN" a écrit dans le message de
news:ca9blm$fq4$
Oui mais si il n'y a pas de champs communs ?

Peut on "demander" la création d'une liste contenant :

un champ date (se trouvant dans chaque base mais pas sous le même nom de
champ)
un champ commentaire (résultant de la concaténation de tout les autres
champs de l'enregistrement de la base)

Avec selection sur le N° client commun à chaque base
et trié par date ??

Sandrine.
"Zeus" a écrit dans le message de
news:
Salut,

il suffit de faire une requete union entre tes 3 tables
tu selectionnes les champs communs aux trois 3 tables que tu veux
faire



apparaitre dans chaque partie de ta requete

"Select * from [notes]

UNION ALL

SELECT * FROM [RDV]

UNION ALL

SELECT * FROM [ACTION]"













Avatar
Zeus
c'est une solution qui doit fonctionner mais qui me semble lourde alors que
la requete union aurait été plus simple :
un exemple :

Une table NOTE Une table RDV
Date Date
Description Sujet
Client Commentaire
Durée
Client

si je veux afficher les commentaire, la date et le client des 2 tables je
fais

SELECT Date, description, client FROM [NOTE]
UNION ALL
SELECT Date, Commentaire, Client FROM [RDV]

une requete union permet de concatener plusieurs requetes ou plusieurs
tables

il faut juste respecter l'ordre des champs dans les sous requetes sinon la
date peut se retrouver dans la colonne commentaire par exemple....
Avatar
SCAN
Merci,

Je viens de tester et cela fonctionne parfaitement.

J'ai crée une requete sur chaque base pour récupérer les infos concernant un
client.

le champ DESCRIPTION est le résultat de la concaténation de plusieurs
champs, distincts suivant la base d'origine.

Puis j'ai crée une nouvelle requete de type UNION

Encore merci pour ton aide,

Sandrine.


"Zeus" a écrit dans le message de
news:%
c'est une solution qui doit fonctionner mais qui me semble lourde alors
que

la requete union aurait été plus simple :
un exemple :

Une table NOTE Une table RDV
Date Date
Description Sujet
Client Commentaire
Durée
Client

si je veux afficher les commentaire, la date et le client des 2 tables je
fais

SELECT Date, description, client FROM [NOTE]
UNION ALL
SELECT Date, Commentaire, Client FROM [RDV]

une requete union permet de concatener plusieurs requetes ou plusieurs
tables

il faut juste respecter l'ordre des champs dans les sous requetes sinon la
date peut se retrouver dans la colonne commentaire par exemple....