mer. 20 janvier 2016, 17h20
Jean-Claude Rivi=c3=a8re
atoutfox.public.association
Re: R=c3=a9sultats d'une requ=c3=aate multipli=c3=a9s
Bonjour Bernard,
Un peu au hasard car je ne vois pas ta requête...
Vu ce que tu décris, je suppose que tu as une requête avec des jointures
sur plusieurs tables et que tu fais des calculs sur ces différentes tables ?
Quelque chose du style :
select a.a1, sum(b.ch1) as ResultB, sum(c.ch1) as ResultC
from a
join b on a.id = b.id_a
join c on a.id = c.id_a
where predicat
group by a.a1
Dans ce cas, a priori, tu devrais avoir une explication aux prochaines
rencontres : j'espère que tu viendras ! :-)
Pour l'instant, sans entrer dans le détail, si ta requête suis la
structure ci-dessus, tu pourrais la modifier de la façon suivante, en
utilisant des sous-requêtes corrélées :
select a.a1,
(select sum(b.ch1) from b where b.id_a = a.id) as ResultB,
(select sum(c.ch1) from c where c.id_a = a.id) as ResultC
from a
where predicat
(le group by disparaît puisque les requêtes internes font les calculs)
Cordialement,
JCR
Le 20/01/2016 14:00, Bernard Avril a écrit :
> Bonjour,
>
> J'ai une requête pour extraire des factures d'une table d'expéditions, avec fonctions comme sum(salprc*qty) et des tables jointes.
>
> Jusqu'à ce matin tout allait bien, or dans les résultats d'aujourd'hui j'ai un un client qui a trois factures dont les chiffres sont triplés. Mais j'ai aussi un client qui a deux factures et dont les résultats sont corrects.
>
> J'ai vérifié, mon client n'apparait qu'une fois dans les tables où il est censé apparaitre, les données des champs de la requête sont corrects, je n'ai rien vu dans les autres champs des tables concernées quoi que ce soit qui pourrait expliquer le problème. Même chose en comparant les données du client à 3 factures avec celles du client à 2 factures.
>
> Je dois rater quelque chose d'évident mais je ne sais plus où regarder. Toute suggestion serait la bienvenue.
>
> Merci.
>
> Bernard
>
>
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000017204