Le 03/08/2011 17:19, g...@vandencruche.fr a écrit :
> Le volume de données est il important ?

il y a une table principale qui peu aller de 10 a quelques centaines de
lignes
jointe a une table secondaire qui rajoute quelques lignes par
enregistrements (que je totalise justement)

voici ma requete a ce jour

$q=$this->createQuery("t")                
                 ->select("t.id, t.datedocument, t.libelle,
t.montantNeg, t.montantPos,
                     s.nomlong, s.nom,
                     f.nom, f.nomlong,
                     l.nom, l.nomlong,
                     SUM(c.montantNeg)+SUM(c.montantPos) AS somme_ech,
                    
t.montantPos+t.montantNeg-SUM(c.montantNeg)-SUM(c.montantPos) AS solde
                     ")                
                 ->leftJoin("t.SousFamille s")
                 ->leftJoin("s.Famille f")
                 ->leftJoin("t.TiersListe l")                
                 ->leftJoin("t.EcheancesEcriture c")
                 ->orderBy("dateDocument")                
                 ->groupBy("id");        

Je souhaite donc filtrer sur solde, qui est un champs calculé
ainsi j'effectuais 2 fois la requetes. pour solde = 0 et solde != 0
et j'avais en php plus qu'a gérer l'affichage en 2 passes.

PS: J'ai du rajouter les leftjoin a la main car sans rien toucher
j'avais au moins 4 requêtes par lignes
et très vite des temsp de génération de plusieurs secondes.
les leftjoin on considérablement optimisé le temps
J'ai rajouté par habitude la selection des champs utiles dans le select

-- 
Vous recevez ce message, car vous êtes abonné au groupe Google 
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail 
à symfony-fr@googlegroups.com.
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
symfony-fr+unsubscr...@googlegroups.com.
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à