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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <butch@untel.uk> a écrit dans le message de news:
olPwf.57223$2O3.1015231@wagner.videotron.net...
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
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