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

Langage SQL Discussion :

Champ calculé, expression, SUM() ? dans quel ordre ? :P


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Champ calculé, expression, SUM() ? dans quel ordre ? :P
    Bonjour tout le monde,

    J'essaye de me dépatouiller avec ma requête, mais là je bloque ...
    Si quelqu'un a la solution ...

    J'ai une table "Compte" (compte bancaire) et une table "Operation".
    1 Compte est lié à 0 ou plusieurs Opérations
    Chaque opération à un montant (OperationMontant)
    Chaque compte à un solde de départ (CompteSoldeDepart)

    Le but est de créer une requête qui donne le solde actuel de tous les comptes.
    C'est à dire :
    Solde actuel = Somme de toutes les opérations + Solde de départ

    Je travaille sous VB.NET Express, je suis persuadé que ma requête est proche de ce que je voudrais, mais malheureusement ça ne fonctionne pas.
    Le problème, qui semble logique, est que si on a 4 opérations par exemple, le solde de départ est pris en compte 4 fois ...

    Quelqu'un a-t-il déjà géré une situation similaire ?

    Merci d'avance

    David


  2. #2
    Membre régulier Avatar de mohamed301084
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Mars 2010
    Messages : 104
    Points : 91
    Points
    91
    Par défaut
    Met ton champ somme de depart dans le regroupement de ta requete pour ne pas le compter quatre fois mais une seule

  3. #3
    Candidat au Club
    Inscrit en
    Février 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Merci pour ta réponse,
    Tu veux dire dans la clause Group By ? j'ai essayé ceci, mais ça donne le même résultat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT     Compte.CompteID, Compte.CompteNom, SUM(Operation.OperationMontant + Compte.CompteSoldeDepart) AS Solde
    FROM         Compte INNER JOIN
                          Operation ON Compte.CompteID = Operation.CompteID
    GROUP BY Compte.CompteID, Compte.CompteNom, Compte.CompteSoldeDepart
    J'ai aussi essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT     Compte.CompteID, Compte.CompteNom, SUM(Operation.OperationMontant) + Compte.CompteSoldeDepart AS Solde
    FROM         Compte INNER JOIN
                          Operation ON Compte.CompteID = Operation.CompteID
    GROUP BY Compte.CompteID, Compte.CompteNom
    Mais là j'obtiens un message d'erreur...

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    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 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Essaie celle-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Compte.CompteID, Compte.CompteNom, 
      SUM(Operation.OperationMontant) + Compte.CompteSoldeDepart AS Solde
    FROM Compte 
    INNER JOIN Operation ON Compte.CompteID = Operation.CompteID
    GROUP BY Compte.CompteID, Compte.CompteNom, Compte.CompteSoldeDepart

Discussions similaires

  1. Dans quel ordre se fait l'évaluation
    Par dj.motte dans le forum C
    Réponses: 12
    Dernier message: 22/08/2008, 23h40
  2. Réponses: 7
    Dernier message: 26/04/2007, 17h46
  3. Réponses: 3
    Dernier message: 24/03/2007, 22h35
  4. champs calculer avec condition dans un etat
    Par scons dans le forum IHM
    Réponses: 2
    Dernier message: 16/12/2006, 19h58
  5. Dans quel ordre ranger les vertices ?
    Par legend666 dans le forum OpenGL
    Réponses: 5
    Dernier message: 10/10/2005, 10h01

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