Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/09/2011, 22h37   #1
Candidat au titre de Membre du Club
 
Homme Aurélien Simon
Conseil aux entreprises
Inscription : juin 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Simon
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Conseil aux entreprises
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 40
Points : 13
Points : 13
Par défaut Doublons sur regroupement SQL

Bonsoir à tous.

Je suis entrain de travailler sur une base de données de facturation.

J'ai une table clients, une table prestations, une table factures et une table lignesfacture, toutes liées entre elles par des relations un à plusieurs.

Je souhaite extraire la liste des clients pour lesquels une facture a été éditée pour un mois donné, avec le nombre d'unités facturées. Je fais donc appel à l'Id client, le nom du client, le prénom du client, la date de la facture et la quantité facturée. je fais un regroupement sur l'Id client, un critère Mois([DateFacture]) = [Quel mois ?], et un compte sur le champ quantité. Seulement, j'ai encore des doublons sur les noms de client.

Quelqu'un voit une explication à mon problème ?

Merci par avance pour votre aide.

Cordialement.

PME Diag
PMEDiag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 23h10   #2
Futur Membre du Club
 
Inscription : septembre 2011
Messages : 32
Détails du profil
Informations forums :
Inscription : septembre 2011
Messages : 32
Points : 18
Points : 18
Dans ta requete, je crois qu'il faut créer une colonne qui cumule le Nom et le Prenom des clients, en effectuant un tri de regroupement sur ces valeurs.
De cette manière, les factures ayant le même nom+Prenom de client seront regroupées sous un seul nom.

Je ne suis pas sur que c’était la question, mais c'est comme ça que je l'ai comprise :s
Rominou28 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 00h41   #3
Membre confirmé
 
Homme
Développeur amateur
Inscription : mars 2009
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur amateur

Informations forums :
Inscription : mars 2009
Messages : 176
Points : 255
Points : 255
Bonsoir ,

Essaye d'utiliser 2 requêtes:
la 1ere: un sélect sur tables factures avec 3 champs seulement: idclient, mois facture et quantité et avec regroupement pour les 2 premiers champs et somme pour le 3 eme.

la 2ème: un sélect sur table client pour extraire le nom/prénom a partir de l'idclient résultant de la 1ere requête

cordialement
reedy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 09h53   #4
Candidat au titre de Membre du Club
 
Homme Aurélien Simon
Conseil aux entreprises
Inscription : juin 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Simon
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Conseil aux entreprises
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 40
Points : 13
Points : 13
Bonjour à tous les deux.

Merci beaucoup pour vos réponses claires et rapides.

Je regarde cela de plus près ce soir et je vous tiens au courant.

Cordialement.

PME Diag
PMEDiag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 21h28   #5
Candidat au titre de Membre du Club
 
Homme Aurélien Simon
Conseil aux entreprises
Inscription : juin 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Simon
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Conseil aux entreprises
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 40
Points : 13
Points : 13
Bonsoir.

Alors, pour mon problème, j'ai créé une requête qui regroupe les champs NomClient&" "&PrenomClient, le champ DateFacture et le champ Quantite. J'ai ensuite créé une requête croisée basée sur cette requête puis un état servant à afficher le résultat de cette requête. Avec quelques champs totaux en plus, le résultat est acceptable et je peux le conserver.

En revanche, j'ai un autre problème. Je souhaite réaliser un état qui affiche la quantité facturée sur toute l'année pour chaque client, un récapitulatif annuel en quelque sorte. Je ne sais pas trop comment m'y prendre.

Si quelqu'un peut m'aiguiller sur la bonne piste, son aide est la bienvenue.

Cordialement.

PME Diag
PMEDiag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 21h58   #6
Membre confirmé
 
Homme
Développeur amateur
Inscription : mars 2009
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Maroc

Informations professionnelles :
Activité : Développeur amateur

Informations forums :
Inscription : mars 2009
Messages : 176
Points : 255
Points : 255
Bonsoir,

Une requete avec regroupement pour les champs nom&prenom et année(date_facture) et somme pour la quantité devrait faire l'affaire

cordialement
reedy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/09/2011, 23h25   #7
Candidat au titre de Membre du Club
 
Homme Aurélien Simon
Conseil aux entreprises
Inscription : juin 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Simon
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Conseil aux entreprises
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 40
Points : 13
Points : 13
Bonsoir.

Merci pour ta réponse très rapide reedy. Je vais tester cela et je poste pour te tenir au courant.

Cordialement.

PME Diag
PMEDiag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 10h06   #8
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour PMEDiag et Reedy,

Je me permets de m'immiscer...

Citation:
.../... regroupement pour les champs nom&prenom .../...
==> attention au regroupement par des champs non uniques. Deux clients s'appelant Jean Martin seront regroupés !... peu probable, d'accord, mais, d'un point de vue conceptuel, c'est une erreur.

Il est préférable de regrouper par Id_Client, comme proposé précédemment par Reedy, et aller retrouver les noms/prénoms dans un second temps.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 28/09/2011, 16h18   #9
Candidat au titre de Membre du Club
 
Homme Aurélien Simon
Conseil aux entreprises
Inscription : juin 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Simon
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Conseil aux entreprises
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 40
Points : 13
Points : 13
Bonjour à tous.

Merci Richard pour ton aide. Si je comprends bien et que je résume :

Je créé une requête pour définir les champs et les calculs dont j'ai besoin (IdClient, DateFacture et Quantite, avec un regroupement sur l'IdClient, un critère sur DateFacture et une somme sur Quantite).

Ensuite je créé mon état annuel et dans la source, j'affecte à un champ que je nomme identite la valeur

Code :
NomClient&" "&PrenomClient
Je demande enfin à l'état de m'afficher un en-tête et pied de groupe sur l'IdClient afin qu'un état soit imprimé par client différent.

Est-ce que cette démarche vous semble crédible ? Sinon comment pense-vous que je dois procéder.

Merci d'avance.

Cordialement.

PME Diag
PMEDiag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 17h40   #10
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Eh bien, si tu n'as que ces deux champs à ajouter, autant le faire dans le regroupement :
Citation:
Envoyé par PMEDiag
Je créé une requête pour définir les champs et les calculs dont j'ai besoin (IdClient, NomClient, PrenomClient, DateFacture et Quantite, avec un regroupement sur l'IdClient, NomClient, PrenomClient, un critère sur DateFacture et une somme sur Quantite).
Avec cette requête en source de données de ton état, tu devrais obtenir ce que tu souhaites.
Mais bon, je ne connais ni VBA ni la conception d'état... mais il s'agit que d'une mise en forme d'une source de données correcte.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2011, 19h07   #11
Candidat au titre de Membre du Club
 
Homme Aurélien Simon
Conseil aux entreprises
Inscription : juin 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Simon
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Conseil aux entreprises
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 40
Points : 13
Points : 13
Re tout le monde.

Alors, voilà où j'en suis :

J'ai créé un état en mode création. La source de cet état est la requête suivante : IdClient, NomClient&" "&PrenomClient, AdresseClient, CPClient&" "&VilleClient et Quantite. Je réalise un groupement sur l'IdClient, l'identité, l'adresse et la localité du client, et je demande la somme des quantités (nombre d'heures facturées).

Le résultat est plutôt correct. Avec un saut de page après section, cela me permet d'obtenir un état par client avec la somme des heures facturées.

Là où cela se corse, c'est lorsque je souhaite faire intervenir une notion de date. J'ajoute le champ DateFacture à la requête et je mets comme critère :

Code :
Année([DateFacture])=[Quel année ?]
Je perds alors le regroupement sur l'IdClient et sur l'identité du client et je me retrouve avec plusieurs états par client, en fonction du nombre de factures éditées pour ce client.

Comment puis-je inclure un critère d'année dans ma requête tout en faisant la somme des heures facturées pour un client sur cette année seulement ?

Merci d'avance.

Cordialement.

PME Diag
PMEDiag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 10h34   #12
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour,

Je ne vois pas pourquoi le fait de demander la saisie d'une année interférerait dans l'état.

Ton test Année([DateFacture])=[Quel année ?] doit être dans la clause WHERE ("Où", dans l'assistant).

Vérifies. Sinon, postes l'image écran de ta requête groupée (via l'assistant).
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h18   #13
Candidat au titre de Membre du Club
 
Homme Aurélien Simon
Conseil aux entreprises
Inscription : juin 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Simon
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Conseil aux entreprises
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 40
Points : 13
Points : 13
Bonjour Richard.

Je pense avoir décelé d'où vient mon problème : dans ma requête, je fais appel au champ DateFacture sur lequel j'applique un critère Année([DateFacture])=[Quelle année ?].

Il faudrait au contraire que je fasse appel à un champ de type Expr1 = Année([DateFacture]).

Ensuite, au moment de l'appel de mon état avec une macro sur un bouton, je passe dans la condition Where le paramètre année récupéré dans une textbox par exemple.

Est-ce que cela te semble judicieux et réalisable ?

Merci beaucoup.

Cordialement.

PME Diag
PMEDiag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h46   #14
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Je ne comprends pas trop.

Si la source de données de ton état est la requête en question, alors la prise en compte du paramètre saisi dans cette requête ne devrait pas poser de problème.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 13h55   #15
Candidat au titre de Membre du Club
 
Homme Aurélien Simon
Conseil aux entreprises
Inscription : juin 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Simon
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Conseil aux entreprises
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 40
Points : 13
Points : 13
Re Richard.

J'avoue ne pas bien comprendre non plus pourquoi cela ne fonctionne pas.

Puis-je t'envoyer ma BDD par mail en t'expliquant clairement ce que je souhaite faire afin que tu puisse m'aiguiller vers la bonne méthode s'il te plait ?

Cordialement.

PME Diag
PMEDiag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 14h22   #16
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par PMEDiag
Puis-je t'envoyer ma BDD par mail .../...
==> je préfère rester sur le forum.

Sinon, comme demandé précédemment, postes l'image graphique de la requête qui est la source de données de ton état.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h07   #17
Membre éclairé
 
Avatar de boussafi
 
Homme
Ingénieur développement logiciels
Inscription : septembre 2007
Messages : 342
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : septembre 2007
Messages : 342
Points : 397
Points : 397
Envoyer un message via Yahoo à boussafi Envoyer un message via Skype™ à boussafi
Par défaut Un point d'ordre

Un point d'ordre pour les participants;
il est preferable d'illustrer les requetes SQL .
boussafi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 19h28   #18
Candidat au titre de Membre du Club
 
Homme Aurélien Simon
Conseil aux entreprises
Inscription : juin 2011
Messages : 40
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Simon
Localisation : France, Cher (Centre)

Informations professionnelles :
Activité : Conseil aux entreprises
Secteur : Conseil

Informations forums :
Inscription : juin 2011
Messages : 40
Points : 13
Points : 13
Bonsoir à tous.

Richard : vois en pièce jointe une capture d'écran de ma requête alimentant l'état.

Boussafi : bien noté, je prendrai dorénavant l'habitude d'illustrer mes questions portant sur des requêtes avec une capture d'écran.

Merci pour votre aide.

Cordialement.

PME Diag
Fichiers attachés
Type de fichier : doc Requete.doc (163,5 Ko, 3 affichages)
PMEDiag est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 22h58   #19
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Citation:
Envoyé par Richard_35
Ton test Année([DateFacture])=[Quel année ?] doit être dans la clause WHERE ("Où", dans l'assistant).
==> tu n'as pas sélectionné "Où", mais "Expression" !
Remplaces "Expression" par "Où", donc.
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 10h22   #20
Expert Confirmé
 
Avatar de Richard_35
 
Homme
Inscription : juillet 2007
Messages : 2 178
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juillet 2007
Messages : 2 178
Points : 2 807
Points : 2 807
Bonjour PMEDiag,

Citation:
Envoyé par PMEDiag
.../... sur une page sur deux, le fonds du détails est grisé. Comment puis-je enlever cela ?
==> je ne sais pas. Je ne connais pas la gestion des états Access.

Postes, peut-être, juste cette question dans le forum IHM, qui inclus la partie "Etat".
__________________
Dis-nous et à bientôt,
Richard.
----------------------------------------------------------------------------------------------
En cas de résolution, et afin de faciliter la tâche des bénévoles, merci de cliquer sur .
et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
Richard_35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h43.


 
 
 
 
Partenaires

Hébergement Web