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 et SQL. Discussion :

somme conditionnelle dans requête de synthèse [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 82
    Points : 47
    Points
    47
    Par défaut somme conditionnelle dans requête de synthèse
    Bonjour,

    J'ai des tables comme suit:

    tbl1 :
    data : date/time
    temps : float (dixième d'heures)
    tarifIDx : lié à tblTarif.TarifID

    tblTarif :
    TarifID : ID automatique
    NomTarif : texte
    Prixheure : currency
    PrixForfait: currency
    EcoleIDx: lié à tblEcole.ID

    tblEcole :
    EcoleID : ID automatique
    NomEcole : Texte

    Je voudrais créer une requête qui fait ceci:
    Ne me donner que les enregistrements:
    Ecole="BAFA"
    NomTarif <> "BAFA TRG" (c'est le seul tarif de cette école que je ne veux pas inclure)

    elle doit me donner la somme de tbl1.temps par jour et par NomTarif et également me donner le compte de TarifID dont le PrixForfait correspondant <>0

    c'est cette dernière opération qui me pose problème et je ne sais pas trop comment m'en sortir. La seule chose que j'aie réussie est de faire le compte des TarifID du jour (tous) mais pas d'avoir un zéro si ce prixForfait=0

    voici mon code SQL, il doit peut être être aisé de réliser cette opération mais je n'y arrive pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT tbl1.Data, tbl1.Temps, tblTarif.NomTarif, tblSchools.School, Count(tblTarif.TarifID) AS CompteDeTarifID
    FROM (tblEcole INNER JOIN tblTarif ON tblEcole.EcoleID = tblTarif.EcoleIDx) INNER JOIN tbl1 ON tblTarif.TarifID = tbl1.TarifIDx
    GROUP BY tbl1.Data, tblTarif.NomTarif, tblEcole.NomEcole
    HAVING (((tblTarif.NomTarif)<>"BAFA Trg") AND ((tblEcole.NomEcole)="BAFA"));
    Où se trouve l'astuce?

    Merci d'avance.
    Xav

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 092
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 092
    Points : 5 210
    Points
    5 210
    Par défaut
    Bonsoir,

    Normalement HAVING est réservé pour les conditions sur un agrégat, la syntaxe normale dans ton cas est avec WHERE (à placer avant GROUP BY)

    Pour compter les non nuls :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(iif(MonChamp=0,0,1))
    Ou plus simple en access (true=-1, false=0) :
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 82
    Points : 47
    Points
    47
    Par défaut
    Merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Somme conditionnelle dans un vecteur
    Par emilie89 dans le forum MATLAB
    Réponses: 2
    Dernier message: 07/01/2013, 14h07
  2. [AC-2010] somme cumulée dans requête
    Par petitours dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 02/08/2012, 13h16
  3. [AC-2007] Somme conditionnelle dans sform
    Par hyperion13 dans le forum IHM
    Réponses: 2
    Dernier message: 25/09/2011, 10h22
  4. Réponses: 1
    Dernier message: 27/10/2010, 23h36
  5. Problème de somme conditionnelle dans un état
    Par Kento10 dans le forum Jasper
    Réponses: 0
    Dernier message: 02/09/2008, 14h02

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