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 :

Comparaison de commandes


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Par défaut Comparaison de commandes
    Je souhaite créer une requête qui me permet de comparer sur une année le total des ventes dans une table "commande".

    J'ai la table suivante :


    DATE
    CONSOMMATION

    Je souhaite connaître le total pour l'année en cours et pour l'année N-1.

    Je ne vois pas comment m'y prendre !

    Pouvez-vous m'aider ?

    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Février 2004
    Messages : 27
    Par défaut
    Ça me semble simple c'est une fonction sum avec un group by.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select trunc(date, 'YEAR'), sum(consommable)
    from commande
    group by trunc(date, 'YEAR')
    Regarde la doc de ton sgbd pour avoir la bonne synthaxe du "trunc" sur une date.

    Research

  3. #3
    Membre éclairé

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Par défaut
    Ce que j'ai oublié de préciser, c'est que je veux également le total pour l'année N pour pouvoir ceci :

    ANNNE N-1 | ANNEE N | DIFFERENCE

    300 | 200 | 100 |

    Je pense à une sous-requête mais je vois pas

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Février 2004
    Messages : 27
    Par défaut
    ok, Le truc est d'utiliser une fonction pour comparer la date et faire 2 colonnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    select vol_courant, vol_precedent, vol_courant - vol_precedent as vol_diff
    from (select sum(decode(trunc(date, 'YEAR'), trunc(sysdate, 'YEAR'), consommable, 0) as vol_courant,
                 sum(decode(trunc(date, 'YEAR'), trunc(sysdate, 'YEAR') - 1, consommable, 0) as vol_precedent
          from commande
         )
    Si ton SGBD n'a pas la fonction decode, tu peux aussi utiliser la fonction case.

    Research

  5. #5
    Membre éclairé

    Inscrit en
    Avril 2004
    Messages
    646
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 646
    Par défaut
    Merci pour le tuyau.

    Mon "truc", c'est Access. On peut coder ça comment avec ce SGBD ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    27
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Février 2004
    Messages : 27
    Par défaut
    Mon confrêre à côter du parevent me dit que l'équivalent de decode dans access 97, c'est iif.

    Research

Discussions similaires

  1. [Batch] FC Commande (Comparaison de deux fichiers)
    Par moilou2 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 27/02/2013, 14h49
  2. Réponses: 6
    Dernier message: 23/06/2010, 10h21
  3. comparaison de 2 dates
    Par eisti dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2003, 11h33
  4. Réponses: 3
    Dernier message: 02/09/2002, 18h49
  5. Réponses: 2
    Dernier message: 11/08/2002, 21h27

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