jeu. 20 mai 2021, 18h50
Jean =c3=a0 Grenoble
atoutfox.public.association
Re: Report avec une table parent et plusieurs tables enfants (4 ou 5)
Bonjour Damonzon,
moi, je n'abandonnerai pas SQL : c'est quand même le meilleur moyen de travailler.
Un moyen de trouver d'où proviennent les doublons et de faire la requête
jointure par jointure en calculant le nombre de lignes en doublon à chaque fois.
Si je reprend un de tes exemples, j'écrirais (non testé!):
Lc_societe = societe.societe
Lc_periode = societe.datepaie
SELECT ent.*, ;
det.cmotif, det.coderub, det.librub, det.montant, det.nbrebase, det.taux, ;
det.tauxits, det.tauxret, COUNT(*) AS nbre ;
FROM bullent ent;
Left Outer Join bulldet det ON ent.entid=det.detid AND ;
ent.societe=det.societe AND ent.matricule=det.matricule AND ;
ent.clef=det.clef AND ent.periode=det.periode;
WHERE ent.societe=m.Lc_societe AND bullent.periode= m.Lc_periode AND ;
!DELETED("bullent");
GROUP BY ent.entid, ent.societe, ent.matricule, ent.clef, ent.periode
HAVING COUNT(*) > 1 ;
INTO CURSOR test1
* le curseur test1 doit être vide. S'il ne l'est pas,
* c'est de cette jointure que proviennent les doublons
* on fait la même chose avec la deuxième jointure
SELECT ent.*, ;
net.coderub as rubnet,net.librub as libnet,net.montant as montnet,;
net.nbrebase as nbrenet,net.taux as tauxnet, COUNT(*) AS nbre;
FROM bullent ent;
Left Outer Join bullnet net On ent.entid=net.netid AND ;
ent.societe=net.societe AND ent.matricule=net.matricule AND ;
ent.clef=net.clef AND ent.periode=net.periode;
WHERE ent.societe=m.Lc_societe AND bullent.periode= m.Lc_periode AND ;
!DELETED("bullent");
GROUP BY ent.entid, ent.societe, ent.matricule, ent.clef, ent.periode
HAVING COUNT(*) > 1 ;
INTO CURSOR test2
* le curseur test2 doit être vide. S'il ne l'est pas,
* c'est de cette jointure que proviennent les doublons
* on fait la même chose avec la troisième jointure
En relisant, j'ai oublié de tester la jointure sur societe. je te laisse écrire
les autres tests !
Une fois que tu auras trouvé le coupable, il faudra réfléchir sur la raison des
doublons.
Tiens nous au courant ! Bon courage.
Jean à Grenoble
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000019842