bonjour
j'ai 4 tables t_visite, t_facture, t_avoir et t_client
t_visite(0,n)->(1,1)t_facture(1,1)<-(0,n)t_client
je voudrais compter le nb de visite par client sachant que si j'ai 1 seule facture ou une facture, un avoir et une refacture le résultat est bon mais dans le cas d'une facture et un avoir (offert client) cela ne compte pas comme cela devrait
j'ai déjà essayer ceci :
pour voir si mon résultat est correct je sélectionne toutes les visites de nature V puis toutes celles de nature C, j'obtiens respectivement 16882 et 1777.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 select F.id_client, sum(case V.nature_visite when 'V' then 1 else 0 end) as NbV, sum(case V.nature_visite when 'C' then 1 else 0 end) as NbC from t_visite V inner join t_facture F on V.id_dossier = F.id_dossier left join t_avoir A on F.id_facture = A.id_facture where V.valider = 1 and V.date_visite between '20090101' and '20091231' and A.id_avoir is null group by F.id_client
si j'exporte le résultat de ma requête et que je fais la somme de NbV et NbC, j'obtiens 16866 et 1766 cela tiens au fait que certaines visites n'ont pas de refacturation en tout cas c'est que je pense.
comment puis je m'en sortir ?
merci
Partager