IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

comptage ou somme qui ne donne pas le resultat attendu


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 180
    Points : 275
    Points
    275
    Par défaut comptage ou somme qui ne donne pas le resultat attendu
    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
    Cordialement JeAn-PhI

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par JeAn-PhI Voir le message
    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 du mal à comprendre le besoin.
    Un exemple de données serait utile.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre actif
    Homme Profil pro
    Inscrit en
    Janvier 2003
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 180
    Points : 275
    Points
    275
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    J'ai du mal à comprendre le besoin.
    Un exemple de données serait utile.
    j'ai trouvé ma solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select T.id_client,T.cli_rs,T.cli_exploit_ville,T.cli_fact_ville,T.cli_fact_same_adr,sum(V) as NbV,sum(C) as NbC,sum(VC) as NbTot
    from (
    select F.id_client,CL.cli_rs,CL.cli_exploit_ville,CL.cli_fact_ville,CL.cli_fact_same_adr,
    case C.ct_nature_ct when 'V' then 1 when 'C' then 1 else 0 end as VC,
    case C.ct_nature_ct when 'V' then 1 else 0 end as V,
    case C.ct_nature_ct when 'C' then 1 else 0 end as C
    from t_facture F inner join t_visite V on F.id_dossier = V.id_dossier
    inner join t_client CL on F.id_client = CL.id_client
    where V.valider = 1
    and V.date between '20090101' and '20091231'
    group by F.id_dossier) as T
    group by T.id_client
    Cordialement JeAn-PhI

Discussions similaires

  1. Une requète qui ne donne pas le résultat attendu
    Par JeanNoel53 dans le forum Firebird
    Réponses: 1
    Dernier message: 17/12/2013, 10h23
  2. Une requête qui ne donne pas le résultat attendu
    Par JeanNoel53 dans le forum Visual C++
    Réponses: 4
    Dernier message: 30/10/2013, 11h35
  3. Réponses: 3
    Dernier message: 29/07/2011, 11h54
  4. Code qui ne donne pas la bonne somme
    Par gangsterus dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 15/12/2008, 13h15
  5. Rnd qui ne donne pas que des bonnes valeurs
    Par kubito dans le forum Access
    Réponses: 2
    Dernier message: 08/10/2004, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo