requête regroupement

Le
zzzz
Bonjour,
Je veux créer une requête de regroupement (Requête1 issue d'une simpl=
e
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 doublonsInutile 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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michel__D
Le #20789871
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é].
zzzz
Le #20792741
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
zzzz
Le #20792731
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...
Michel__D
Le #20796181
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é];
zzzz
Le #20799861
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
zzzz
Le #20809821
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...
zzzz
Le #20809811
On 19 déc, 17:55, 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'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)
Michel__D
Le #20813381
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.
zzzz
Le #20816591
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...
Publicité
Poster une réponse
Anonyme