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 :

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
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.
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