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 :

Une soustraction en sql?


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Par défaut Une soustraction en sql?
    Bonjour
    Je veux faire une diminution entre deux champs numériques. Le problème c'est que j'aimerais la recevoir pour chaque année.

    Table statistique
    numeroSTATISTIQUE
    codeSCIAN

    Table annee_statistique
    numeroSTATISTIQUE
    numeroANNEE
    moyenneANNEE_STATISTIQUE

    Donc je voudrais faire une requete m'envoyer (pour chaque annee) La moyenne du code Scian 11 - celle du code Scian 113

    Pour faire une somme j'utilise la méthode SUM avec un group by, mais est il possible de faire une soustraction

    Maryse

  2. #2
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Sous quel SGBD Please ?

    Sinon, en reprenant ton schéma, un peu simplifié pour faciliter l'écriture des requêtes, on peut procéder ainsi :

    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
    16
    17
    18
    19
    CREATE Table Statistique (
    num NUMBER (10),
    cod NUMBER (10));
     
    CREATE TABLE Annee (
    num NUMBER (10),
    ann NUMBER (4),
    moy NUMBER (10));
     
    INSERT INTO Statistique (num, cod) VALUES (1, 11);
    INSERT INTO Statistique (num, cod) VALUES (2, 113);
     
    -- des données pour 2003, 2004 & 2005 :
    INSERT INTO Annee (num, ann, moy) VALUES (1, 2003, 15);
    INSERT INTO Annee (num, ann, moy) VALUES (1, 2004, 13);
    INSERT INTO Annee (num, ann, moy) VALUES (1, 2005, 16);
    INSERT INTO Annee (num, ann, moy) VALUES (2, 2003, 7);
    INSERT INTO Annee (num, ann, moy) VALUES (2, 2004, 6);
    INSERT INTO Annee (num, ann, moy) VALUES (2, 2005, 8);
    La requête suivante devrait ressembler à ce que tu cherches :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SQL> SELECT A11.ann AS Annee, (A11.moy - A113.moy) AS Difference
      2    FROM Annee A11, Annee A113, Statistique S11, Statistique S113
      3   WHERE S11.cod = 11
      4     AND S11.num = A11.num
      5     AND S113.cod = 113
      6     AND S113.num = A113.num
      7     AND A11.ann = A113.ann;
     
         ANNEE DIFFERENCE
    ---------- ----------
          2003          8
          2004          7
          2005          8
    Les jointures ne sont pas normalisées selon la norme SQL3, je travaile habituellement sous Oracle 8 et j'ai testé ainsi, je te laisse les adapter si besoin
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 126
    Par défaut Merci ;)
    Ça a tout a fait répondu à ma question. Merci beaucoup

    Maryse

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

Discussions similaires

  1. Commande d'exécution d'une procedure stockée SQL sur vb
    Par tseg dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/11/2003, 12h47
  2. Déployer une appli avec SQL SERVER
    Par tiboleo dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 15/10/2003, 14h29
  3. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51
  4. Supprimer une colonne sous SQL Serveur 2000
    Par WOLO Laurent dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 14/07/2003, 12h24
  5. MAJ d'une table sous SQL Server par insertion
    Par keish dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/06/2003, 16h23

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