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

requête regroupement

9 réponses
Avatar
zzzz
Bonjour,
Je veux cr=E9er une requ=EAte de regroupement (Requ=EAte1 issue d'une simpl=
e
requ=EAte s=E9lection de 2 tables) qui doit me restituer un seul libell=E9
par num=E9ro.
Mais le regroupement ne marche pas. J'ai cherch=E9 s'il y avait des
espaces dans le champ Libell=E9 des 2 tables... RAS ; j'ai cherch=E9 s'il
y a un probl=E8me de compatibilit=E9 de type de donn=E9es pour les champs
NUMERO et Libell=E9 des 2 tables... RAS
Je pensais r=E9gler mon probl=E8me en faisant :
SELECT Requ=EAte1.NUMERO, Requ=EAte1.Libell=E9
FROM Requ=EAte1
GROUP BY Requ=EAte1.NUMERO, Requ=EAte1.Libell=E9;

Toujours sans succ=E8s, j'obtiens des doublons...Inutile de vous dire
que le regroupement de la derni=E8re requ=EAte ne marche pas...
=E7a marche bien s=FBr si je fais SELECT Requ=EAte1.NUMERO FROM Requ=EAte1
GROUP BY Requ=EAte1.NUMERO ou si je rajoute un autre champ =E0 ma requ=EAte=
.
Il est certain que le probl=E8me vient du champ Libell=E9...

Si quelqu'un a une id=E9e...
Merci d'avance
Eric

9 réponses

Avatar
Michel__D
Bonjour,

zzzz a écrit :
Bonjour,
Je veux créer une requête de regroupement (Requête1 issue d'une simple
requête sélection de 2 tables) qui doit me restituer un seul libellé
par numéro.
Mais le regroupement ne marche pas. J'ai cherché s'il y avait des
espaces dans le champ Libellé des 2 tables... RAS ; j'ai cherché s'il
y a un problème de compatibilité de type de données pour les champs
NUMERO et Libellé des 2 tables... RAS
Je pensais régler mon problème en faisant :
SELECT Requête1.NUMERO, Requête1.Libellé
FROM Requête1
GROUP BY Requête1.NUMERO, Requête1.Libellé;

Toujours sans succès, j'obtiens des doublons...Inutile de vous dire
que le regroupement de la dernière requête ne marche pas...
ça marche bien sûr si je fais SELECT Requête1.NUMERO FROM Requête1
GROUP BY Requête1.NUMERO ou si je rajoute un autre champ à ma requête..
Il est certain que le problème vient du champ Libellé...

Si quelqu'un a une idée...
Merci d'avance
Eric



Ben il y a pas de secret si le regroupement te renvoie plusieurs
enregistrements c'est qu'il y a une différence entre eux, vérifie
la valeur des champs [Libellé].
Avatar
zzzz
On 17 déc, 19:52, Michel__D
wrote:
Bonjour,

zzzz a écrit :



> Bonjour,
> Je veux créer une requête de regroupement (Requête1 issue d'une s imple
> requête sélection de 2 tables) qui doit me restituer un seul libell é
> par numéro.
> Mais le regroupement ne marche pas. J'ai cherché s'il y avait des
> espaces dans le champ Libellé des 2 tables... RAS ; j'ai cherché s' il
> y a un problème de compatibilité de type de données pour les cham ps
> NUMERO et Libellé des 2 tables... RAS
> Je pensais régler mon problème en faisant :
> SELECT Requête1.NUMERO, Requête1.Libellé
> FROM Requête1
> GROUP BY Requête1.NUMERO, Requête1.Libellé;

> Toujours sans succès, j'obtiens des doublons...Inutile de vous dire
> que le regroupement de la dernière requête ne marche pas...
> ça marche bien sûr si je fais SELECT Requête1.NUMERO FROM Requê te1
> GROUP BY Requête1.NUMERO ou si je rajoute un autre champ à ma requ ête..
> Il est certain que le problème vient du champ Libellé...

> Si quelqu'un a une idée...
> Merci d'avance
> Eric

Ben il y a pas de secret si le regroupement te renvoie plusieurs
  enregistrements c'est qu'il y a une différence entre eux, vérifie
  la valeur des champs [Libellé].



Je suis tout à fait d'accord avec toi, et j'ai bien cherché;
D'ailleurs, il y a des champs [Libellé] qui sont vides et j'a
Avatar
zzzz
On 17 déc, 19:52, Michel__D
wrote:
Bonjour,

zzzz a écrit :



> Bonjour,
> Je veux créer une requête de regroupement (Requête1 issue d'une s imple
> requête sélection de 2 tables) qui doit me restituer un seul libell é
> par numéro.
> Mais le regroupement ne marche pas. J'ai cherché s'il y avait des
> espaces dans le champ Libellé des 2 tables... RAS ; j'ai cherché s' il
> y a un problème de compatibilité de type de données pour les cham ps
> NUMERO et Libellé des 2 tables... RAS
> Je pensais régler mon problème en faisant :
> SELECT Requête1.NUMERO, Requête1.Libellé
> FROM Requête1
> GROUP BY Requête1.NUMERO, Requête1.Libellé;

> Toujours sans succès, j'obtiens des doublons...Inutile de vous dire
> que le regroupement de la dernière requête ne marche pas...
> ça marche bien sûr si je fais SELECT Requête1.NUMERO FROM Requê te1
> GROUP BY Requête1.NUMERO ou si je rajoute un autre champ à ma requ ête..
> Il est certain que le problème vient du champ Libellé...

> Si quelqu'un a une idée...
> Merci d'avance
> Eric

Ben il y a pas de secret si le regroupement te renvoie plusieurs
  enregistrements c'est qu'il y a une différence entre eux, vérifie
  la valeur des champs [Libellé].



Je suis tout à fait d'accord avec toi. J'ai bien vérifié. D'ailleurs,
il y a des champs [Libellé] qui sont vides et il me retourne 2
enregistrements (c'est à dire 2 fois le NUMERO et 2 Libellé vides).
J'ai même essayé avec supprespace; sans succès... J'ai l'habitude de
ce genre de requête et je ne vois pas la solution...
Avatar
Michel__D
Bonjour,

zzzz a écrit :
On 17 déc, 19:52, Michel__D
wrote:
Bonjour,

zzzz a écrit :



Bonjour,
Je veux créer une requête de regroupement (Requête1 issue d'une simple
requête sélection de 2 tables) qui doit me restituer un seul libellé
par numéro.
Mais le regroupement ne marche pas. J'ai cherché s'il y avait des
espaces dans le champ Libellé des 2 tables... RAS ; j'ai cherché s'il
y a un problème de compatibilité de type de données pour les champs
NUMERO et Libellé des 2 tables... RAS
Je pensais régler mon problème en faisant :
SELECT Requête1.NUMERO, Requête1.Libellé
FROM Requête1
GROUP BY Requête1.NUMERO, Requête1.Libellé;
Toujours sans succès, j'obtiens des doublons...Inutile de vous dire
que le regroupement de la dernière requête ne marche pas...
ça marche bien sûr si je fais SELECT Requête1.NUMERO FROM Requête1
GROUP BY Requête1.NUMERO ou si je rajoute un autre champ à ma requête..
Il est certain que le problème vient du champ Libellé...
Si quelqu'un a une idée...
Merci d'avance
Eric


Ben il y a pas de secret si le regroupement te renvoie plusieurs
enregistrements c'est qu'il y a une différence entre eux, vérifie
la valeur des champs [Libellé].



Je suis tout à fait d'accord avec toi. J'ai bien vérifié. D'ailleurs,
il y a des champs [Libellé] qui sont vides et il me retourne 2
enregistrements (c'est à dire 2 fois le NUMERO et 2 Libellé vides).
J'ai même essayé avec supprespace; sans succès... J'ai l'habitude de
ce genre de requête et je ne vois pas la solution...



Essaye d'isoler les enregistrements vides et regarde si tu as bien la
même chose :

SELECT R.NUMERO, R.[Libellé]
FROM [Requête1] AS R
WHERE R.[Libellé] IS NULL
GROUP BY R.NUMERO, R.[Libellé];
Avatar
zzzz
On 18 déc, 21:57, Michel__D
wrote:
Bonjour,

zzzz a écrit :



> On 17 déc, 19:52, Michel__D
> wrote:
>> Bonjour,

>> zzzz a écrit :

>>> Bonjour,
>>> Je veux créer une requête de regroupement (Requête1 issue d'une simple
>>> requête sélection de 2 tables) qui doit me restituer un seul libe llé
>>> par numéro.
>>> Mais le regroupement ne marche pas. J'ai cherché s'il y avait des
>>> espaces dans le champ Libellé des 2 tables... RAS ; j'ai cherché s'il
>>> y a un problème de compatibilité de type de données pour les ch amps
>>> NUMERO et Libellé des 2 tables... RAS
>>> Je pensais régler mon problème en faisant :
>>> SELECT Requête1.NUMERO, Requête1.Libellé
>>> FROM Requête1
>>> GROUP BY Requête1.NUMERO, Requête1.Libellé;
>>> Toujours sans succès, j'obtiens des doublons...Inutile de vous dire
>>> que le regroupement de la dernière requête ne marche pas...
>>> ça marche bien sûr si je fais SELECT Requête1.NUMERO FROM Requ ête1
>>> GROUP BY Requête1.NUMERO ou si je rajoute un autre champ à ma req uête..
>>> Il est certain que le problème vient du champ Libellé...
>>> Si quelqu'un a une idée...
>>> Merci d'avance
>>> Eric
>> Ben il y a pas de secret si le regroupement te renvoie plusieurs
>>   enregistrements c'est qu'il y a une différence entre eux, véri fie
>>   la valeur des champs [Libellé].

> Je suis tout à fait d'accord avec toi. J'ai bien vérifié. D'aille urs,
> il y a des champs [Libellé] qui sont vides et il me retourne 2
> enregistrements (c'est à dire 2 fois le NUMERO et 2 Libellé vides).
> J'ai même essayé avec supprespace; sans succès... J'ai l'habitude de
> ce genre de requête et je ne vois pas la solution...

Essaye d'isoler les enregistrements vides et regarde si tu as bien la
  même chose :

SELECT R.NUMERO, R.[Libellé]
FROM [Requête1] AS R
WHERE R.[Libellé] IS NULL
GROUP BY R.NUMERO, R.[Libellé];



OK, merci je verifie ça lundi au bureau
Avatar
zzzz
On 18 déc, 21:57, Michel__D
wrote:
Bonjour,

zzzz a écrit :



> On 17 déc, 19:52, Michel__D
> wrote:
>> Bonjour,

>> zzzz a écrit :

>>> Bonjour,
>>> Je veux créer une requête de regroupement (Requête1 issue d'une simple
>>> requête sélection de 2 tables) qui doit me restituer un seul libe llé
>>> par numéro.
>>> Mais le regroupement ne marche pas. J'ai cherché s'il y avait des
>>> espaces dans le champ Libellé des 2 tables... RAS ; j'ai cherché s'il
>>> y a un problème de compatibilité de type de données pour les ch amps
>>> NUMERO et Libellé des 2 tables... RAS
>>> Je pensais régler mon problème en faisant :
>>> SELECT Requête1.NUMERO, Requête1.Libellé
>>> FROM Requête1
>>> GROUP BY Requête1.NUMERO, Requête1.Libellé;
>>> Toujours sans succès, j'obtiens des doublons...Inutile de vous dire
>>> que le regroupement de la dernière requête ne marche pas...
>>> ça marche bien sûr si je fais SELECT Requête1.NUMERO FROM Requ ête1
>>> GROUP BY Requête1.NUMERO ou si je rajoute un autre champ à ma req uête..
>>> Il est certain que le problème vient du champ Libellé...
>>> Si quelqu'un a une idée...
>>> Merci d'avance
>>> Eric
>> Ben il y a pas de secret si le regroupement te renvoie plusieurs
>>   enregistrements c'est qu'il y a une différence entre eux, véri fie
>>   la valeur des champs [Libellé].

> Je suis tout à fait d'accord avec toi. J'ai bien vérifié. D'aille urs,
> il y a des champs [Libellé] qui sont vides et il me retourne 2
> enregistrements (c'est à dire 2 fois le NUMERO et 2 Libellé vides).
> J'ai même essayé avec supprespace; sans succès... J'ai l'habitude de
> ce genre de requête et je ne vois pas la solution...

Essaye d'isoler les enregistrements vides et regarde si tu as bien la
  même chose :

SELECT R.NUMERO, R.[Libellé]
FROM [Requête1] AS R
WHERE R.[Libellé] IS NULL
GROUP BY R.NUMERO, R.[Libellé];



Bonjour,
J'ai réussi à isoler le problème. Requête1 est une union de 2 table s.
c'est la 1ere table qui pose problème
Quand je fais un filtre par exemple sur l'enregistrement NUMERO
0770065C colonne Libellé et qui est apparemment vide, je suis sensé
faire un filtre sur tous les enregistrements où le libellé est vide.
Et bien non, le NUMERO 0770065C n'apparaît pas. Autrement dit si je
fais :
SELECT [0000_06].NUMEROI, [0000_06].Libellé
FROM 0000_06
GROUP BY [0000_06].NUMERO, [0000_06].Libellé;
l'enregistrement 0770065C apparaît avec un libellé (apparemment) vide.
et si j'ajoute :
HAVING ((([0000_06].Libellé) Is Null)) l'enregistrement 0770065C
n'apparaît plus.
Il est clair que cet enregistrement n'est pas null; mais je ne vois
pas la solution...
NB : j'ai fait au préalable un trim de la colonne libellé pour
supprimer les éventuels espaces...
Avatar
zzzz
On 19 déc, 17:55, zzzz wrote:
On 18 déc, 21:57, Michel__D
wrote:



> Bonjour,

> zzzz a écrit :

> > On 17 déc, 19:52, Michel__D
> > wrote:
> >> Bonjour,

> >> zzzz a écrit :

> >>> Bonjour,
> >>> Je veux créer une requête de regroupement (Requête1 issue d'u ne simple
> >>> requête sélection de 2 tables) qui doit me restituer un seul li bellé
> >>> par numéro.
> >>> Mais le regroupement ne marche pas. J'ai cherché s'il y avait des
> >>> espaces dans le champ Libellé des 2 tables... RAS ; j'ai cherch é s'il
> >>> y a un problème de compatibilité de type de données pour les champs
> >>> NUMERO et Libellé des 2 tables... RAS
> >>> Je pensais régler mon problème en faisant :
> >>> SELECT Requête1.NUMERO, Requête1.Libellé
> >>> FROM Requête1
> >>> GROUP BY Requête1.NUMERO, Requête1.Libellé;
> >>> Toujours sans succès, j'obtiens des doublons...Inutile de vous di re
> >>> que le regroupement de la dernière requête ne marche pas...
> >>> ça marche bien sûr si je fais SELECT Requête1.NUMERO FROM Req uête1
> >>> GROUP BY Requête1.NUMERO ou si je rajoute un autre champ à ma r equête..
> >>> Il est certain que le problème vient du champ Libellé...
> >>> Si quelqu'un a une idée...
> >>> Merci d'avance
> >>> Eric
> >> Ben il y a pas de secret si le regroupement te renvoie plusieurs
> >>   enregistrements c'est qu'il y a une différence entre eux, vé rifie
> >>   la valeur des champs [Libellé].

> > Je suis tout à fait d'accord avec toi. J'ai bien vérifié. D'ail leurs,
> > il y a des champs [Libellé] qui sont vides et il me retourne 2
> > enregistrements (c'est à dire 2 fois le NUMERO et 2 Libellé vides ).
> > J'ai même essayé avec supprespace; sans succès... J'ai l'habitu de de
> > ce genre de requête et je ne vois pas la solution...

> Essaye d'isoler les enregistrements vides et regarde si tu as bien la
>   même chose :

> SELECT R.NUMERO, R.[Libellé]
> FROM [Requête1] AS R
> WHERE R.[Libellé] IS NULL
> GROUP BY R.NUMERO, R.[Libellé];

OK, merci je verifie ça lundi au bureau



ta requete ne me retourne pas de doublons (voir mon autre réponse)
Avatar
Michel__D
Bonjour,

zzzz a écrit :
On 18 déc, 21:57, Michel__D
wrote:

Bonjour,

zzzz a écrit :




On 17 déc, 19:52, Michel__D
wrote:

Bonjour,

zzzz a écrit :

Bonjour,
Je veux créer une requête de regroupement (Requête1 issue d'une simple
requête sélection de 2 tables) qui doit me restituer un seul libellé
par numéro.
Mais le regroupement ne marche pas. J'ai cherché s'il y avait des
espaces dans le champ Libellé des 2 tables... RAS ; j'ai cherché s'il
y a un problème de compatibilité de type de données pour les champs
NUMERO et Libellé des 2 tables... RAS
Je pensais régler mon problème en faisant :
SELECT Requête1.NUMERO, Requête1.Libellé
FROM Requête1
GROUP BY Requête1.NUMERO, Requête1.Libellé;
Toujours sans succès, j'obtiens des doublons...Inutile de vous dire
que le regroupement de la dernière requête ne marche pas...
ça marche bien sûr si je fais SELECT Requête1.NUMERO FROM Requête1
GROUP BY Requête1.NUMERO ou si je rajoute un autre champ à ma requête..
Il est certain que le problème vient du champ Libellé...
Si quelqu'un a une idée...
Merci d'avance
Eric



Ben il y a pas de secret si le regroupement te renvoie plusieurs
enregistrements c'est qu'il y a une différence entre eux, vérifie
la valeur des champs [Libellé].



Je suis tout à fait d'accord avec toi. J'ai bien vérifié. D'ailleurs,
il y a des champs [Libellé] qui sont vides et il me retourne 2
enregistrements (c'est à dire 2 fois le NUMERO et 2 Libellé vides).
J'ai même essayé avec supprespace; sans succès... J'ai l'habitude de
ce genre de requête et je ne vois pas la solution...



Essaye d'isoler les enregistrements vides et regarde si tu as bien la
même chose :

SELECT R.NUMERO, R.[Libellé]
FROM [Requête1] AS R
WHERE R.[Libellé] IS NULL
GROUP BY R.NUMERO, R.[Libellé];




Bonjour,
J'ai réussi à isoler le problème. Requête1 est une union de 2 tables.
c'est la 1ere table qui pose problème
Quand je fais un filtre par exemple sur l'enregistrement NUMERO
0770065C colonne Libellé et qui est apparemment vide, je suis sensé
faire un filtre sur tous les enregistrements où le libellé est vide.
Et bien non, le NUMERO 0770065C n'apparaît pas. Autrement dit si je
fais :
SELECT [0000_06].NUMEROI, [0000_06].Libellé
FROM 0000_06
GROUP BY [0000_06].NUMERO, [0000_06].Libellé;
l'enregistrement 0770065C apparaît avec un libellé (apparemment) vide.
et si j'ajoute :
HAVING ((([0000_06].Libellé) Is Null)) l'enregistrement 0770065C
n'apparaît plus.
Il est clair que cet enregistrement n'est pas null; mais je ne vois
pas la solution...
NB : j'ai fait au préalable un trim de la colonne libellé pour
supprimer les éventuels espaces...




C'était cet aspect des choses que je voulais que tu découvre; une chaîne
vide ne correspond
pas à la valeur nulle et pour pouvoir t'en sortir il faut user de la
fonction Nz(TonChamp,"") qui
va remplacer toutes tes valeurs nulles par une chaîne vide lorsqu'il
s'agit de traiter un champ texte.
Avatar
zzzz
On 21 déc, 19:49, Michel__D
wrote:
Bonjour,

zzzz a écrit :





> On 18 déc, 21:57, Michel__D
> wrote:

>> Bonjour,

>> zzzz a écrit :

>>> On 17 déc, 19:52, Michel__D
>>> wrote:

>>>> Bonjour,

>>>> zzzz a écrit :

>>>>> Bonjour,
>>>>> Je veux créer une requête de regroupement (Requête1 issue d'u ne simple
>>>>> requête sélection de 2 tables) qui doit me restituer un seul li bellé
>>>>> par numéro.
>>>>> Mais le regroupement ne marche pas. J'ai cherché s'il y avait des
>>>>> espaces dans le champ Libellé des 2 tables... RAS ; j'ai cherch é s'il
>>>>> y a un problème de compatibilité de type de données pour les champs
>>>>> NUMERO et Libellé des 2 tables... RAS
>>>>> Je pensais régler mon problème en faisant :
>>>>> SELECT Requête1.NUMERO, Requête1.Libellé
>>>>> FROM Requête1
>>>>> GROUP BY Requête1.NUMERO, Requête1.Libellé;
>>>>> Toujours sans succès, j'obtiens des doublons...Inutile de vous di re
>>>>> que le regroupement de la dernière requête ne marche pas...
>>>>> ça marche bien sûr si je fais SELECT Requête1.NUMERO FROM Req uête1
>>>>> GROUP BY Requête1.NUMERO ou si je rajoute un autre champ à ma r equête..
>>>>> Il est certain que le problème vient du champ Libellé...
>>>>> Si quelqu'un a une idée...
>>>>> Merci d'avance
>>>>> Eric

>>>> Ben il y a pas de secret si le regroupement te renvoie plusieurs
>>>>   enregistrements c'est qu'il y a une différence entre eux, vé rifie
>>>>   la valeur des champs [Libellé].

>>> Je suis tout à fait d'accord avec toi. J'ai bien vérifié. D'ail leurs,
>>> il y a des champs [Libellé] qui sont vides et il me retourne 2
>>> enregistrements (c'est à dire 2 fois le NUMERO et 2 Libellé vides ).
>>> J'ai même essayé avec supprespace; sans succès... J'ai l'habitu de de
>>> ce genre de requête et je ne vois pas la solution...

>> Essaye d'isoler les enregistrements vides et regarde si tu as bien la
>>   même chose :

>> SELECT R.NUMERO, R.[Libellé]
>> FROM [Requête1] AS R
>> WHERE R.[Libellé] IS NULL
>> GROUP BY R.NUMERO, R.[Libellé];

> Bonjour,
> J'ai réussi à isoler le problème. Requête1 est une union de 2 t ables.
> c'est la 1ere table qui pose problème
> Quand je fais un filtre par exemple sur l'enregistrement NUMERO
> 0770065C colonne Libellé et qui est apparemment vide, je suis sensé
> faire un filtre sur tous les enregistrements où le libellé est vide .
> Et bien non, le NUMERO 0770065C n'apparaît pas. Autrement dit si je
> fais :
> SELECT [0000_06].NUMEROI, [0000_06].Libellé
> FROM 0000_06
> GROUP BY [0000_06].NUMERO, [0000_06].Libellé;
> l'enregistrement 0770065C apparaît avec un libellé (apparemment) vi de.
> et si j'ajoute :
> HAVING ((([0000_06].Libellé) Is Null))  l'enregistrement 0770065C
> n'apparaît plus.
> Il est clair que cet enregistrement n'est pas null; mais je ne vois
> pas la solution...
> NB : j'ai fait au préalable un trim de la colonne libellé pour
> supprimer les éventuels espaces...

C'était cet aspect des choses que je voulais que tu découvre; une cha îne
vide ne correspond
 pas à la valeur nulle et pour pouvoir t'en sortir il faut user de la
fonction Nz(TonChamp,"") qui
 va remplacer toutes tes valeurs nulles par une chaîne vide lorsqu'il
s'agit de traiter un champ texte.- Masquer le texte des messages préc édents -

- Afficher le texte des messages précédents -



ça marche, merci bcp.
J'avais essayé, sans succès, la fonction Asc pour voir...
Et en remplaçant les valeurs nulles par "", ça marche aussi...
Donc, il vaut mieux utiliser "" que null...