ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Forum AtoutFox : Re: Report avec une table parent et plusieurs tables enfants (4 ou 5)   

Sujet

rss Flux RSS des derniers messages

Vous devez vous identifier pour pouvoir poser une question ou répondre.

sam. 22 mai 2021, 18h28
Jean =c3=a0 Grenoble
atoutfox.public.association

Re: Report avec une table parent et plusieurs tables enfants (4 ou 5)

Bonjouur Damonzon,
je crois que j'ai commis une petite erreur dans mes exemples de test. Peux-tu
essayer de faire les mêmes tests mais comme cela :

SELECT entid, societe, matricule, clef, periode ;
FROM bullent ;
WHERE societe=m.Lc_societe AND periode= m.Lc_periode ;
AND !DELETED("bullent") ;
INTO CURSOR ent1snodel READWRITE && peut servir pour tous les tests

SELECT ent.entid, ent.societe, ent.matricule, ent.clef, ent.periode, ;
COUNT(*) AS nbre ;
FROM ent1snodel 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 ;
GROUP BY ent.entid, ent.societe, ent.matricule, ent.clef, ent.periode ;
HAVING COUNT(*) > 1 ;
INTO CURSOR test1

la logique de cela : J'ai reporté dans une requête sur une seule table le test
DELETED() et aussi les tests sur société et période. VFP peut simplifier une
telle requete et la transformer en SET FILTER. Comme je ne veux pas celà, j'ai
ajouter la clause READWRITE. Cette requête n'est pas à recalculer pour chaque test.

Dans la deuxième requête, je ne traite que les champs qui apparaissent dans la
jointure parce qu'on cherche des doublons sur ces champs uniquement.

Tu peux essayer ?

Jean à Grenoble
Permalink : http://www.atoutfox.org/nntp.asp?ID=0000019846
20 087 messages dans le forum • Liste complète des messages

Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3