Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction regroupement sans doublon

7 réponses
Avatar
kiki en Guyane
Bonjour

j'ai besoin de totaliser mes clients sur une année donnée, mais quand
j'utilise la fonction regroupement, ou la fonction compte, il totalise tous
les clients, même s'ils apparaissent plusieurs fois. J'ai besoin qu'il fasse
le distingo, si le client TRUCMUCHE apparait 3 fois, c'est tjours le même
client, donc je veux le nombre 1.
Merci de votre aide

7 réponses

Avatar
3stone
Salut,

"kiki en Guyane"
| j'ai besoin de totaliser mes clients sur une année donnée, mais quand
| j'utilise la fonction regroupement, ou la fonction compte, il totalise tous
| les clients, même s'ils apparaissent plusieurs fois. J'ai besoin qu'il fasse
| le distingo, si le client TRUCMUCHE apparait 3 fois, c'est tjours le même
| client, donc je veux le nombre 1.


Tu ne dis rien de ta requête...


Il faut utiliser une requête imbriquée:

Select Count(*) as NbreClient
From (Select T_Client.CodeClient
FROM T_Client
GROUP BY CodeClient);


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw
Avatar
Jac
Salut kiki de Guyane,

si "totaliser tes clients" signifie en faire une liste sans doublons, dans
une requête, tu n'affiches que le champ CLIENT et tu cliques sur l'icône
sigma. Access crée automatiquement un regroupement sur les noms de clients.
Si un client apparaît plusieurs fois c'est qu'il est écrit plusieurs fois de
façon différente dans la table des clients. En général, "ça" ne se fait pas
et on s'en prémunit en déclarant dans la table INDEXÉ SANS DOUBLONS.
Si tu as besoin de totaux liés aux clients (combien de factures ou de
commandes, quel chiffre d'affaire, ...) précise ton besoin final.

Jac


"kiki en Guyane" a écrit dans le
message de news:
Bonjour

j'ai besoin de totaliser mes clients sur une année donnée, mais quand
j'utilise la fonction regroupement, ou la fonction compte, il totalise
tous
les clients, même s'ils apparaissent plusieurs fois. J'ai besoin qu'il
fasse
le distingo, si le client TRUCMUCHE apparait 3 fois, c'est tjours le même
client, donc je veux le nombre 1.
Merci de votre aide


Avatar
kiki en Guyane
salut Jac
en fait, J'ai une requete avec une table "client" + une table "formation".
Lorsque je fais la fonction regroupement, je peux avoir le client 761 qui a
fait 2 formations différentes et quand je totalise avec la fonction compte
dans le regroupement, il compte deux clients, et non pas 1. En fait on dirait
qu'il totalise le nbre de formations et non pas de clients et pourtant
j'obtiens le champ "ComptedeNuméroAgent". C'est plus clair ?
Moi ca m'arrache la tête, déjà qu'il fait chaud chez moi !


Salut kiki de Guyane,

si "totaliser tes clients" signifie en faire une liste sans doublons, dans
une requête, tu n'affiches que le champ CLIENT et tu cliques sur l'icône
sigma. Access crée automatiquement un regroupement sur les noms de clients.
Si un client apparaît plusieurs fois c'est qu'il est écrit plusieurs fois de
façon différente dans la table des clients. En général, "ça" ne se fait pas
et on s'en prémunit en déclarant dans la table INDEXÉ SANS DOUBLONS.
Si tu as besoin de totaux liés aux clients (combien de factures ou de
commandes, quel chiffre d'affaire, ...) précise ton besoin final.

Jac


"kiki en Guyane" a écrit dans le
message de news:
Bonjour

j'ai besoin de totaliser mes clients sur une année donnée, mais quand
j'utilise la fonction regroupement, ou la fonction compte, il totalise
tous
les clients, même s'ils apparaissent plusieurs fois. J'ai besoin qu'il
fasse
le distingo, si le client TRUCMUCHE apparait 3 fois, c'est tjours le même
client, donc je veux le nombre 1.
Merci de votre aide







Avatar
kiki en Guyane
Salut Pierre 3Stone,
J'ai une requete avec une table "agent" + une table "formation".
Lorsque je fais la fonction regroupement, je peux avoir le client 761 qui a
fait 2 formations différentes et quand je totalise avec la fonction compte
dans le regroupement, il compte deux clients, et non pas 1. En fait on dirait
qu'il totalise le nbre de formations et non pas de clients et pourtant
j'obtiens le champ "ComptedeNuméroAgent".
J'ai essayé d'écrire ce que tu m'as donné en passant par le SQL mais il me
dit que j'ai une erreur de syntaxe. Voici ce que j'ai écrit
Select Count(Agents.NuméroAgent) AS NbreNuméroAgent,from (T_Agents,
NuméroAgent GROUP BY NuméroAgent).
??? Tu as mis une astérisque après la parenthèse de Count, elle veut dire
quoi . J'ai cherché requete imbriquée dans l'aide, pas trouvé, quelle prise
de tête pour un truc simple !!


Salut,

"kiki en Guyane"
| j'ai besoin de totaliser mes clients sur une année donnée, mais quand
| j'utilise la fonction regroupement, ou la fonction compte, il totalise tous
| les clients, même s'ils apparaissent plusieurs fois. J'ai besoin qu'il fasse
| le distingo, si le client TRUCMUCHE apparait 3 fois, c'est tjours le même
| client, donc je veux le nombre 1.


Tu ne dis rien de ta requête...


Il faut utiliser une requête imbriquée:

Select Count(*) as NbreClient
From (Select T_Client.CodeClient
FROM T_Client
GROUP BY CodeClient);


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw





Avatar
Jac
Plutôt que de longues explications, je t'envoie un exemple à l'adresse que
tu m'indiqueras.
N'oublie pas d'enlever ".sans.spam" de mon adresse.

Jac
Avatar
kiki en Guyane
Salut jac

tu peux m'écrire sur , chez moi on a 5 heures de moins
que vous.
@+++
Kiki


Plutôt que de longues explications, je t'envoie un exemple à l'adresse que
tu m'indiqueras.
N'oublie pas d'enlever ".sans.spam" de mon adresse.

Jac






Avatar
3stone
Salut,

"kiki en Guyane"
| J'ai une requete avec une table "agent" + une table "formation".
| Lorsque je fais la fonction regroupement, je peux avoir le client 761 qui a
| fait 2 formations différentes et quand je totalise avec la fonction compte
| dans le regroupement, il compte deux clients, et non pas 1. En fait on dirait
| qu'il totalise le nbre de formations et non pas de clients et pourtant
| j'obtiens le champ "ComptedeNuméroAgent".
| J'ai essayé d'écrire ce que tu m'as donné en passant par le SQL mais il me
| dit que j'ai une erreur de syntaxe. Voici ce que j'ai écrit
| Select Count(Agents.NuméroAgent) AS NbreNuméroAgent,from (T_Agents,
| NuméroAgent GROUP BY NuméroAgent).

Select Count(*) From (Select NuméroAgent From T_Agents Group By NuméroAgent)


au lieu de la sous requête, tu peux le faire en deux coup (deux requête)

La première (la sous requête)
- tu choisi ta table T_Agents
- tu ne sélectionne que le champ [NuméroAgents]
- tu fait un regroupement et tu regarde, tu as une seule fois chaque No_agent
- tu sauve sous req_regroupeAgent

La seconde (qui permet de comtper)
- tu sélectionne la requête "req_regroupeAgent"
- tu clique sur le sigma (regroupement) que tu modifie en "Compte"
- tu execute et obtient le nombre d'agent différent




| ??? Tu as mis une astérisque après la parenthèse de Count, elle veut dire
| quoi .


que tu compte toutes les ligne de la sous-requête sans avoir à
spécifier le nom du champ...


| J'ai cherché requete imbriquée dans l'aide, pas trouvé, quelle prise
| de tête pour un truc simple !!


sous-requête, peut-être ? ;-)




| > Il faut utiliser une requête imbriquée:
| >
| > Select Count(*) as NbreClient
| > From (Select T_Client.CodeClient
| > FROM T_Client
| > GROUP BY CodeClient);


Il fallait juste adapter le nom de la table et du champ !

Dans le SQL, la moindre erreur empêche la requête de fonctionner.

Pour cela, un conseil:
Prend l'habitude, lorsque tu crée une requête avec la grille de requête,
de *toujours* basculer en mode SQL et d'essayer de comprendre
ce qui y est exprimé.
Cela te permettra également de mieux comprendre pourquoi les requêtes
que tu crée ne fonctionne pas, ou pas comme tu le souhaite.


--
A+
Pierre (3stone) Access MVP
Perso: http://users.skynet.be/accesshome/
Conseils MPFA: http://users.skynet.be/mpfa/
Email : http://www.cerbermail.com/?Xfg61Z3IQw