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 :

Requete SQL : clef et valeur de clef precedente


Sujet :

Langage SQL

  1. #1
    Membre averti
    Homme Profil pro
    Informaticien
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 357
    Points
    357
    Par défaut Requete SQL : clef et valeur de clef precedente
    Bonjour,

    je cherche à extraire une clef (qui possède une certaine valeur) par rapport à sa valeur précédente,
    j'ai retourné le problème dans tous les sens mais je bloque toujours quelque part !

    Par exemple :

    ---------------
    Table référence
    ---------------
    ref_clef integer
    ref_nom varchar(20)

    avec
    1,'TOTO'
    2,'TATA'
    3,'TITI'

    ------------
    Table valeur
    ------------
    ref_clef integer
    val_valeur char(1)
    val_date date

    avec
    1 , 'A' , '2009-02-15'
    1 , 'B' , '2009-02-14'
    1 , 'C' , '2009-02-12'
    2 , 'B' , '2009-02-15'
    2 , 'C' , '2009-02-11'
    3 , 'B' , '2009-02-13'
    3 , 'B' , '2009-02-07'

    Pour cet exemple je dois donc extraire toutes les clefs qui ont pour valeur B et dont la valeur précédente était C
    Soit :

    1,'B','TOTO'
    2,'B','TATA'

    (pour info, je suis sous postgresql)

    Merci d'avance pour toutes les suggestions

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 738
    Points
    11 738
    Par défaut
    y'a sûrement matière à simplifier, mais tu peux déjà tester ça...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT V.ref_clef
    FROM valeur V
      INNER JOIN valeur PV ON V.ref_clef = PV.ref_clef AND V.val_date > PV.val_date
    WHERE val_date = (SELECT MAX(V1.val_date) FROM valeur V1 WHERE V1.ref_clef = V.ref_clef)
      AND val_valeur = 'B'
    GROUP BY V.ref_clef
    HAVING MAX(PV.val_date) = (SELECT MAX(V2.val_date) FROM valeur V2 WHERE V2.ref_clef = V.ref_clef AND V2.val_date < V.val_date)
      AND PV.ref_clef = B

  3. #3
    Membre averti
    Homme Profil pro
    Informaticien
    Inscrit en
    Juin 2004
    Messages
    182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Informaticien
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2004
    Messages : 182
    Points : 357
    Points
    357
    Par défaut
    Merci pour ta réponse.

    ta requête m'a bien aidé.

    pour ceux que cela pourrait intéresser, voici ma requête .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT *
    FROM reference,valeur V
      INNER JOIN valeur PV ON V.ref_clef = PV.ref_clef AND V.val_date > PV.val_date
    WHERE V.val_valeur = 'B' AND PV.val_date = 
    (SELECT MAX(V1.val_date) FROM valeur V1 WHERE V1.ref_clef = V.ref_clef 
    AND V.val_date> V1.val_date) 
    AND PV.val_valeur='C' AND V.ref_clef=reference.ref_clef

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

Discussions similaires

  1. Alimenter une requete SQL par la valeur d'un TextBox
    Par Monta^^ dans le forum ASP.NET
    Réponses: 5
    Dernier message: 06/02/2012, 11h17
  2. Probleme de requete SQL avec la valeur NULL
    Par samyghan dans le forum Installation
    Réponses: 8
    Dernier message: 12/03/2006, 17h24
  3. requete SQL avec valeur max
    Par oeil de nuit dans le forum Langage SQL
    Réponses: 2
    Dernier message: 06/01/2006, 08h58
  4. Réponses: 1
    Dernier message: 20/09/2005, 21h15
  5. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    Réponses: 3
    Dernier message: 13/09/2004, 14h40

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