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 SQL avec sélection lors d'un changement de valeur


Sujet :

Langage SQL

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2021
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Requête SQL avec sélection lors d'un changement de valeur
    Bonjour à tous

    Je me permets de solliciter votre expertise sur un petit sujet sur lequel je "sèche".
    Actuellement, je dispose d'une table A (voici sa description ci-dessous):

    ID Valeur Date
    1 100 01/01/2021
    1 100 02/02/2021
    1 999 03/03/2021
    1 100 04/04/2021
    1 100 05/05/2021

    Et je souhaiterais ne sélectionner que les lignes qui "changent" de valeur (pour un même ID).
    Dans l'exemple ci-dessus, il ne faudrait ressortir que les lignes 1, 3 et 4 (j'ai mis en rouge les valeurs qui sont mises à jour et que je souhaite garder).
    Je ne souhaite pas garder la ligne 2 car la valeur 100 n'a pas bougé, même chose pour la dernière ligne 5.

    J'ai bien tenter de faire des LEAD ou LAG, mais je n'obtiens jamais les 3 lignes voulue en sortie.

    Si une âme charitable a une idée, je suis preneur

    Merci d'avance à tous pour votre aide.

    Neo

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 137
    Points : 1 917
    Points
    1 917
    Par défaut
    Bonjour,

    Quelle est ta BDD et sa version?

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    bonjour

    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    WITH prec AS (
    	SELECT	*, LAG(Valeur) OVER(PARTITION BY ID ORDER BY Dte)  AS ValeurPreced 
    	FROM	LaTable
    )
    SELECT ID ,	Valeur ,	Dte
    FROM prec
    WHERE 
    		Valeur <> ValeurPreced 
    	OR	ValeurPreced IS NULL
    	;

  4. #4
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2021
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Citation Envoyé par vanagreg Voir le message
    Bonjour,

    Quelle est ta BDD et sa version?
    Hello
    Oracle 12c


    Citation Envoyé par aieeeuuuuu Voir le message
    bonjour

    comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    WITH prec AS (
    	SELECT	*, LAG(Valeur) OVER(PARTITION BY ID ORDER BY Dte)  AS ValeurPreced 
    	FROM	LaTable
    )
    SELECT ID ,	Valeur ,	Dte
    FROM prec
    WHERE 
    		Valeur <> ValeurPreced 
    	OR	ValeurPreced IS NULL
    	;
    Hello
    Sauf erreur de ma part, ta requête me sort seulement la ligne 1 ? Je me trompe ?

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2021
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Re,

    Erreur de ma part, mon jeu de données a été mis à jour entre temps et je n'avais pas fait attention :/

    @aieeeuuuuu : ta requête fonctionne parfaitement
    Merci, c'est exactement ce que je voulais !

    Bonne soirée à tous
    Neo

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

Discussions similaires

  1. fatal error -2147467259 lors d'une requête SQL avec Mysql
    Par Spartanjohn dans le forum ADO.NET
    Réponses: 2
    Dernier message: 18/03/2013, 17h23
  2. [AC-2003] Requête SQL avec sélection de dates spécifiques et fonction iif
    Par luckytiger dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/03/2010, 11h08
  3. requête SQL avec plusieurs critères de sélection
    Par gailup dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/06/2007, 08h44
  4. requête SQL avec paramètre en vb avec base de donnée SQL srv
    Par dialydany dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 01/02/2005, 10h33
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

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