OVH Cloud OVH Cloud

Requête complexe ??

1 réponse
Avatar
Butch
Bonjour,

(Sous Windows XP - Access XP.)

Voici la situation :
a) 1 table (Table_1) servant à inscrire les coordonnées de clients (nom -
prénom - adresse etc.).
b) 1 table (Table_2) servant à noter les achats faits par ces clients au
cous d'une année d'opération (ex: 2000/2001).
c) Les 2 tables sont en relation 1 à plusieurs sur un champ commun nommé
No_Client au format numérique.
d) La clé primaire est placée sur le champ No_Client de la Table_1

Extraction souhaitée :
Est-il possible, par une requête, d'extraire de la Table_1 les coordonnées
des clients n'ayant pas effectué d'achats au cours d'une année d'opération
(ex: 2003/2004) tout en pouvant obtenir, par la même requête, le total des
achats des autres clients pour la même année ?

Remarque : J'ai essayé avec une requête de non correspondance entre les 2
tables sur le champ No_Client mais les résultats ne sont pas complètement
corrects ! Dès qu'un client a fait un achat au cours d'une année quelconque,
ses coordonnées "ne sortent pas" pour une autre année où il n'aurait fait
aucun achat.

J'espère que ces explications sont assez claires et merci à qui pourrait
m'aider dans la création d'une telle requête.
Butch

1 réponse

Avatar
synopsis
Select
table_1.*
, nz(n, 0)
From table_1
Left join (
select No_Client, count(*) n
from table_2
where annee_operation='2003/2004'
group by no_client
) as achat on table_1.No_Client = achat.No_Client

Explications :

- La sous_requête grouby by te donnes le nombre d'opérations pour l'anne
'2003/2004' par no_client ( ayant une opération sur cette période)
- on joint cette sous-requête à la table client (table_1)
- on passe par une jointure ouverte (left join) afin de ne pas rejeter les
clients qui n'ont aucune opération en 2003/2004
- la fonction nz transforme le null en 0



"Butch" a écrit dans le message de news:
olPwf.57223$
Bonjour,

(Sous Windows XP - Access XP.)

Voici la situation :
a) 1 table (Table_1) servant à inscrire les coordonnées de clients (nom -
prénom - adresse etc.).
b) 1 table (Table_2) servant à noter les achats faits par ces clients au
cous d'une année d'opération (ex: 2000/2001).
c) Les 2 tables sont en relation 1 à plusieurs sur un champ commun nommé
No_Client au format numérique.
d) La clé primaire est placée sur le champ No_Client de la Table_1

Extraction souhaitée :
Est-il possible, par une requête, d'extraire de la Table_1 les coordonnées
des clients n'ayant pas effectué d'achats au cours d'une année d'opération
(ex: 2003/2004) tout en pouvant obtenir, par la même requête, le total des
achats des autres clients pour la même année ?

Remarque : J'ai essayé avec une requête de non correspondance entre les 2
tables sur le champ No_Client mais les résultats ne sont pas complètement
corrects ! Dès qu'un client a fait un achat au cours d'une année
quelconque,
ses coordonnées "ne sortent pas" pour une autre année où il n'aurait fait
aucun achat.

J'espère que ces explications sont assez claires et merci à qui pourrait
m'aider dans la création d'une telle requête.
Butch