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 :

fonction MOINS existe? (comme SUM)


Sujet :

Langage SQL

  1. #1
    Membre éclairé Avatar de bruman
    Inscrit en
    Juin 2005
    Messages
    566
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2005
    Messages : 566
    Points : 794
    Points
    794
    Par défaut fonction MOINS existe? (comme SUM)
    Bonjour
    j'ai une requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    select distinct m.reference, date_heure 
    from 
            ( select reference, sum(valeur) as val 
              from mouvements 
              where sens = 'D' group by (support, reference)
             ) ref, 
             mouvements m 
    where (
           ref.val <m.valeur 
         and m.reference = ref.reference 
         and m.sens = 'C') 
         or m.reference not in 
                   (select reference from mouvements where sens = 'D') 
    order by date_heure
    1) J'aimerais en fait récupérer toutes les références de sens 'C' qui ont une valeur supérieur à la somme des valeurs des enregistrements de sens 'D' ayant la même référence... (clair? lol) Ma requete fonctionne et je récupère dans mon résultat toute les références désirée ainsi que les date_heure correpondantes.
    Mais je voudrais savoir si j'ai la possibilité de récupérer dans mon résultat la valeur correspondant à mon enregistrement de sens 'C' moins la somme des valeurs de sens 'D'.
    Ou plus simplement, comme la fonction SUM, est il possible de faire un MOINS(m.valeur, ref.val)

    2) J'aimerais savoir si il y a moyen de la simplifier;

    Ma table est toute simple :

    reference varchar
    sens varchar
    valeur varchar
    date_heure date

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT T1.reference, T1.date_heure, T1.valeur, T1.valeur - sum(T2.valeur)
    FROM mouvements T1
    	LEFT JOIN mouvements T2
    		ON T1.reference = T2.reference
    		AND T2.sens = 'D'
    WHERE T1.sens LIKE 'C'
    GROUP BY T1.reference, T1.date_heure, T1.valeur
    HAVING T1.valeur > sum(T2.valeur)

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/02/2008, 16h13
  2. Fonction leading existe t-elle ?
    Par Alexiel2 dans le forum Qt
    Réponses: 4
    Dernier message: 24/10/2007, 19h20
  3. [EXPRESSION]fonction vraifaux avec (comme)
    Par samimikha dans le forum Access
    Réponses: 2
    Dernier message: 05/04/2007, 18h22
  4. Fonction 'failed' avec comme paramètre un HResult
    Par Leobaillard dans le forum Delphi
    Réponses: 1
    Dernier message: 08/08/2006, 20h29
  5. Fonction artangente, existes tu en C++??
    Par grozero dans le forum MFC
    Réponses: 5
    Dernier message: 02/05/2005, 15h10

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