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 :

Requête regroupant deux lignes sur une colonne


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Points : 40
    Points
    40
    Par défaut Requête regroupant deux lignes sur une colonne
    Bonjour à toutes et à tous,

    Je bloque depuis un petit moment sur une requête. Je vais essayer d'exposer mon problème avec un exemple simple.

    Ma base :

    ARTICLE | DATE | PRIX
    A0001 | 201206 | 3.50
    A0001 | 201207 | 3.00
    En fait ma requête a pour but de comparer les différences de prix d'achat des articles tous les mois.

    Le résultat que j'aimerai afficher :

    ARTICLE | DATE1 | PRIX1 | DATE2 | PRIX2
    A0001 | 201206 | 3.50 | 201207 | 3.00

    Je suis pratiquement sûr que c'est possible en n'utilisant que le SQL.


    Merci d'avance,
    Cordialement.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 099
    Points : 28 397
    Points
    28 397
    Par défaut
    ça se fait très facilement avec une auto-jointure, à condition que tu n'aies que deux dates par article !
    Si tu en as plus, il faudra définir la règle qui permet d'identifier quelles sont les deux dates à comparer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT  lg1.article
        ,   lg1.date    AS date_1
        ,   lg1.prix    AS prix_1
        ,   lg2.date    AS date_2
        ,   lg2.prix    AS prix_2
    FROM    matable lg1
        INNER JOIN
            matable lg2
            ON  lg1.article = lg2.article
            AND lg1.date    < lg2.date

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Merci, je test ça dès demain.
    Ça me semble très bien à première vue

    Merci, je te tiens au courant.

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2010
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 68
    Points : 40
    Points
    40
    Par défaut
    Ça marche parfaitement, merci!

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

Discussions similaires

  1. Faire pivoter une ligne sur une colonne (Résolu)
    Par yoann34 dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 15/05/2013, 11h53
  2. Regrouper données de deux lignes sur une seule
    Par flacdo dans le forum Requêtes
    Réponses: 2
    Dernier message: 18/04/2012, 10h23
  3. cas d'école : Requête combinée avec test sur une colonne
    Par teuzadur dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 23/06/2011, 14h14
  4. Regrouper plusieurs lignes sur une seule
    Par Mygush dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/09/2009, 11h05
  5. regrouper plusieurs lignes dans une colonne
    Par Satch dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/08/2009, 11h39

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