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

 Oracle Discussion :

Select sum et where


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Points : 43
    Points
    43
    Par défaut Select sum et where
    Bonjour,

    Je voudrais faire une requete comprenant des sommes tout en appliquant des clauses avec where, mais je n'y arrive pas.

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select A.nom, sum(A.montant), sum(B.montant) from compta a, compta@base_distante B
     
    where A.NOM = B.NOM
    -- and sum(A.montant) != sum(B.montant)
     
    group by A.nom
    La partie and sum(A.montant) != sum(B.montant) n'est pas permise

    J'ai aussi essayé de faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sum(A.montant) mont_a, sum(B.montant) mont_b
    etc..
    where mont_a != mont_b
    qui ne marche pas non plus

    J'ai aussi essayé de faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    select nom, somme_a, somme_b from (1ere requete vue plus haut)
    where somme_a != somme_b
    Et devinez quoi ... ca marche pas non plus.

    J'espere que mon probleme est clair... Si oui, y'a t'il une solution?
    Merci!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT a.nom, a.sumresult, b.sumresult
    FROM (SELECT nom, sum(montant) sumresult FROM compta GROUP BY NOM) a
    JOIN (SELECT nom, sum(montant) sumresult FROM compta@base_distante GROUP BY NOM) b ON a.nom=b.nom
    WHERE a.sumresult!=b.sumresult;
    EDIT: petite correction... dure journee aujourd'hui...
    ---
    Farid

  3. #3
    Membre chevronné Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Points : 2 071
    Points
    2 071
    Par défaut
    Je pense qu'il faut faut utiliser 'HAVING'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT A.nom, sum(A.montant), sum(B.montant) FROM compta a, compta@base_distante B
     
    WHERE A.NOM = B.NOM
     
    GROUP BY A.nom
    HAVING sum(A.montant) != sum(B.montant)
    Garuda गरूड
    Brahmâ la Guerre et Vishnu la Paix

    Oracle 12C R2 - Forms11GR2 - Toad 12 - sharePoint 2010

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 207
    Points : 237
    Points
    237
    Par défaut
    Bonjour,

    Effectivement, il faut utiliser la clause HAVING.
    Pour pouvoir comparer les sommes, il faut au préalable que les sommes soient calculés.
    En revanche, si on avait voulu exclure les lignes ayant un montant inférieur à une valeur, on aurait utiliser un WHERE plutot qu'un HAVING pour des problèmes de performance.

    Laurent

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 280
    Points : 344
    Points
    344
    Par défaut
    autant pour moi, j'avais mal "interprete" son probleme...

    ---
    Farid

  6. #6
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Points : 43
    Points
    43
    Par défaut
    Merci à tous! Ca marche nickel

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

Discussions similaires

  1. select * from compta where sum = variable
    Par vience dans le forum SQL
    Réponses: 6
    Dernier message: 23/05/2012, 21h19
  2. select Sum probleme de placement dans where
    Par afroweb dans le forum Langage SQL
    Réponses: 4
    Dernier message: 18/01/2009, 19h16
  3. Select dans clause Where
    Par Bisûnûrs dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/08/2006, 12h50
  4. Utiliser le résultat de SELECT Sum dans If
    Par samlepiratepaddy dans le forum Requêtes et SQL.
    Réponses: 33
    Dernier message: 15/11/2005, 09h38
  5. SUM dans where
    Par francon81 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 01/06/2005, 18h02

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