OVH Cloud OVH Cloud

Compte d'éléments différents d'une table

15 réponses
Avatar
gael
Bonjour,
J'ai une table dont un des champs peut contenir des doublons.
Je souhaite connaître le nombre d'enregistrements différents, cad en
ignorant les doublons.
exemple:
1501
1501
1506
1507
1513
1513

Résultat attendu: 4

Je voudrais une fonction simple ne faisant pas (trop) appel à un code VBA
que je ne maitrise pas bien.

Merci,

Gael

5 réponses

1 2
Avatar
3stone
re,

"gael"
| Précisions:
| Je dois trouver le nombre de commandes couvrant l'émission de billets,
| sachant qu'une commande peut couvrir 1 ou plusieurs billets.
| Ma table reprend les billets émis, et les commandes y relatives. Il y a des
| doublons de num. de commande, et c'est normal.
| Il n'y a pas de doublons de NUMERO_TICK.
| Les NUMERO_CMD ne sont pas séquentiels puisque certaines commandes ne se
| rapportent pas à des billets et n'apparaissent donc pas ici.
| Ce que je recherche, c'est le nombre de commandes différentes pour les
| billets émis.
|
| La table se présente comme ceci: (la séquence des NUMERO_TICK n'est pas
| continue, mais là, pas de doublons)
|
| J'ajoute que cette table ne comporte pas de clé primaire.
|
| NUMERO_CMD NUMERO_TICK
|
| 36505 157
| 36506 158
| 36506 159
| 36509 168
| 36518 175
| 36518 176
| 36518 177
| ...etc
| Il y a 4 commandes différentes. C'est ce chiffre dont j'ai besoin.


Oui et donc, tu dois simplement savoir combien de numéros de
commandes différents sans te soucier du nombre de tickets
(il n'interviennent pas dans ce que tu cherche...)

et dans ce cas, la requête ci-dessous est la bonne!

Select Count(*)
From ( Select Numero_Cmd
From Numero_Cmd_Tick
Group By Numero_Cmd)

Pour la créer, fait une nouvelle requête basée sur ta table [Numero_Cmd_Tick]
- sélectionne uniquement le champ Numero_Cmd
- fait un regroupement (sigma dans la barre d'outils)
- exécute la requete (tu obtiens tous les numéros, mais une seule fois...)

continue par:
- menu affichage "Mode SQL"

et tu obtiens:
Select Numero_Cmd_Tick.Numero_Cmd
From Numero_Cmd_Tick
Group By Numero_Cmd_Tick.Numero_Cmd;

complète la ainsi :

Select Count(*) AS NbrCMD From
(
Select Numero_Cmd_Tick.Numero_Cmd
From Numero_Cmd_Tick
Group By Numero_Cmd_Tick.Numero_Cmd
) As GroupCMD;

Attention! il faut supprimer le premier ";" point-virgule !!!!
Sauve-la sous le nom "reqNombreCMD" par exemple
et exécute la, tu obtiens la valeur cherchée.

Pour afficher cette valeur dans un textbox, tu écrit dans le textbox :

= Dlookup("NbreCmd";"reqNombreCMD")


Voilà ! ca fonctionne ?

;-)


--
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
td__
Tout à fait compris. C'est très clair. J'essayerai lundi, je ne suis pas en
possession de la BDD chez moi. Je te dirai quoi lundi.
Merci encore
GL

"3stone" a écrit dans le message de
news:
re,

"gael"
| Précisions:
| Je dois trouver le nombre de commandes couvrant l'émission de billets,
| sachant qu'une commande peut couvrir 1 ou plusieurs billets.
| Ma table reprend les billets émis, et les commandes y relatives. Il y a
des

| doublons de num. de commande, et c'est normal.
| Il n'y a pas de doublons de NUMERO_TICK.
| Les NUMERO_CMD ne sont pas séquentiels puisque certaines commandes ne se
| rapportent pas à des billets et n'apparaissent donc pas ici.
| Ce que je recherche, c'est le nombre de commandes différentes pour les
| billets émis.
|
| La table se présente comme ceci: (la séquence des NUMERO_TICK n'est pas
| continue, mais là, pas de doublons)
|
| J'ajoute que cette table ne comporte pas de clé primaire.
|
| NUMERO_CMD NUMERO_TICK
|
| 36505 157
| 36506 158
| 36506 159
| 36509 168
| 36518 175
| 36518 176
| 36518 177
| ...etc
| Il y a 4 commandes différentes. C'est ce chiffre dont j'ai besoin.


Oui et donc, tu dois simplement savoir combien de numéros de
commandes différents sans te soucier du nombre de tickets
(il n'interviennent pas dans ce que tu cherche...)

et dans ce cas, la requête ci-dessous est la bonne!

Select Count(*)
From ( Select Numero_Cmd
From Numero_Cmd_Tick
Group By Numero_Cmd)

Pour la créer, fait une nouvelle requête basée sur ta table
[Numero_Cmd_Tick]

- sélectionne uniquement le champ Numero_Cmd
- fait un regroupement (sigma dans la barre d'outils)
- exécute la requete (tu obtiens tous les numéros, mais une seule fois...)

continue par:
- menu affichage "Mode SQL"

et tu obtiens:
Select Numero_Cmd_Tick.Numero_Cmd
From Numero_Cmd_Tick
Group By Numero_Cmd_Tick.Numero_Cmd;

complète la ainsi :

Select Count(*) AS NbrCMD From
(
Select Numero_Cmd_Tick.Numero_Cmd
From Numero_Cmd_Tick
Group By Numero_Cmd_Tick.Numero_Cmd
) As GroupCMD;

Attention! il faut supprimer le premier ";" point-virgule !!!!
Sauve-la sous le nom "reqNombreCMD" par exemple
et exécute la, tu obtiens la valeur cherchée.

Pour afficher cette valeur dans un textbox, tu écrit dans le textbox :

= Dlookup("NbreCmd";"reqNombreCMD")


Voilà ! ca fonctionne ?

;-)


--
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
gael
Bonjour, 3Stone
Tes explications sont très claires, mais il y a une erreur de syntaxe
lorsque je complète la requête comme tu dis:

complète la ainsi :

Select Count(*) AS NbrCMD From
(
Select Numero_Cmd_Tick.Numero_Cmd
From Numero_Cmd_Tick
Group By Numero_Cmd_Tick.Numero_Cmd
) As GroupCMD;

Attention! il faut supprimer le premier ";" point-virgule !!!!
OUI, OK, bien vu.


Toutefois, la première partie de la req. fonctionne bien, et, à la limite,
l'affichage du nombre de lignes donne la réponse.

Merci à tous .

GL


Sauve-la sous le nom "reqNombreCMD" par exemple
et exécute la, tu obtiens la valeur cherchée.

Pour afficher cette valeur dans un textbox, tu écrit dans le textbox :

= Dlookup("NbreCmd";"reqNombreCMD")


Voilà ! ca fonctionne ?

;-)


--
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
3stone
Salut,

"gael"
| mais il y a une erreur de syntaxe...

| > Select Count(*) AS NbrCMD From

| > = Dlookup("NbreCmd";"reqNombreCMD")


juste un choua ;-)))


j'ai écrit ... AS NbrCMD From

et erronément... Dlookup("NbreCmd";"reqNombreCMD")

il fallait bien sûr : Dlookup("NbrCmd";"reqNombreCMD") sans le "e"


Faut suivre un peu, tout de même :o)


--
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
gael_
Mais c'est bien sûr ! où ai-je donc la tête ???
GL


juste un choua ;-)))


j'ai écrit ... AS NbrCMD From

et erronément... Dlookup("NbreCmd";"reqNombreCMD")

il fallait bien sûr : Dlookup("NbrCmd";"reqNombreCMD") sans le "e"


Faut suivre un peu, tout de même :o)


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





1 2