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

Disparition de doublons dans une requête union

1 réponse
Avatar
Ear Plugs
Bonjour le ng,

Un drôle de truc qui me tombe dessus, je n'y avais jamais été confronté ou
alors j'avais pas fais gaffe.

J'ai deux requêtes distinctes par les sources de données et identiques quant
à la sortie : champs texte nommés pareil.

Ainsi, dans la fenêtre SQL d'une nouvelle requête je fais un copié/collé de
chaque chaîne SQL que je relie par une magnifique clause UNION. Chouette, je
ne me suis pas planté dans le format de sortie, ça passe. (Au final, j'en
aligne 5!)

En execution séparée j'obtiens 548 enreg chez l'une et 80 chez l'autre,
c'est à dire 628 en tout.

Quand je lance la requête UNION je ne ramène que 626 enregestrements !

Mystère. Je peste, je tatonne et je finis par soupçonner une histoire de
doublons.

C'est en fait un journal de vente qui ne tient pas compte de la quantité qui
est 1 dans 99,3 %. C'est à dire que si on veut vendre deux produits
identiques, on rentre deux fois la même référence. C'est ce qui est arrivé
par deux fois dans mon échantillon. Je modifie les deux références en
doublon et là j'obtiens bien 628.

Ça doit être logique et reproductible mais il y a certainement un truc dans
les requêtes UNION que je ne maîtrise pas...

Je précise que je ne fais appelle à aucune clause de regroupement.

Merci pour vos impressions et à bientôt.
Je préfèrerais à tout de suite, même ! :))

1 réponse

Avatar
Ear Plugs
Pif, paf, résolu ! Google a été mon ami :))

UNION ALL à la place d'un simple UNION

Puisse ma mésaventure éclairer les générations futures.

@+ et bonne fin de vacances pour les uns ou rentrée pour les autres.

P.S. y fait chaud.

Ear Plugs wrote:
Bonjour le ng,

Un drôle de truc qui me tombe dessus, je n'y avais jamais été
confronté ou alors j'avais pas fais gaffe.

J'ai deux requêtes distinctes par les sources de données et
identiques quant à la sortie : champs texte nommés pareil.

Ainsi, dans la fenêtre SQL d'une nouvelle requête je fais un
copié/collé de chaque chaîne SQL que je relie par une magnifique
clause UNION. Chouette, je ne me suis pas planté dans le format de
sortie, ça passe. (Au final, j'en aligne 5!)

En execution séparée j'obtiens 548 enreg chez l'une et 80 chez
l'autre, c'est à dire 628 en tout.

Quand je lance la requête UNION je ne ramène que 626 enregestrements !

Mystère. Je peste, je tatonne et je finis par soupçonner une histoire
de doublons.

C'est en fait un journal de vente qui ne tient pas compte de la
quantité qui est 1 dans 99,3 %. C'est à dire que si on veut vendre
deux produits identiques, on rentre deux fois la même référence.
C'est ce qui est arrivé par deux fois dans mon échantillon. Je
modifie les deux références en doublon et là j'obtiens bien 628.

Ça doit être logique et reproductible mais il y a certainement un
truc dans les requêtes UNION que je ne maîtrise pas...

Je précise que je ne fais appelle à aucune clause de regroupement.

Merci pour vos impressions et à bientôt.
Je préfèrerais à tout de suite, même ! :))