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

Développement SQL Server Discussion :

Requête SQL de récupération de lignes


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Par défaut Requête SQL de récupération de lignes
    Bonjour,
    Je suis novice en sql.
    Voilà ce que je veux faire. J'ai une table STATUT_CONTRAT avec la structure suivante: FICHIER en pièce jointe

    id_contrat fk_service statut service date_saisie
    859485 55 O 01/03/2012 00:12
    859485 55 A 02/03/2012 00:13
    859485 55 D 02/03/2012 12:12
    859485 33 A 03/03/2012 00:12
    859486 45 O 05/03/2012 00:12
    859486 45 A 06/03/2012 00:13
    859486 45 D 07/03/2012 00:14
    859486 25 A 08/03/2012 01:05
    859486 22 A 08/03/2012 01:07
    859487 10 O 09/03/2012 00:12
    859487 10 A 10/03/2012 00:13
    859488 66 O 11/03/2012 00:12
    859488 66 A 12/03/2012 00:13
    859488 66 D 13/03/2012 00:15
    859488 15 A 14/03/2012 00:20
    859489 16 O 15/03/2012 00:12
    859489 16 A 16/03/2012 00:13

    Je voudrais récupérer toutes lignes de statut A qui sont uniquement précédées du statut D.

    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    select T1.id_contrat, T1.fk_service, T1.statut_service, T1.date_saisie
      from STATUT_CONTRAT as T1
     where T1.statut_service = 'A'
       and exists (select null
                     from STATUT_CONTRAT as T2
                    where T2.statut_service = 'D'
                      and T2.id_contrat = T1.id_contrat
                      and T2.date_saisie < T1.date_saisie)

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Par défaut Requête SQL de récupération de lignes
    Merci, ça marche.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Par défaut Requête SQL Récupération
    En fait, ça ne marche pas tout à fait car on ne veut récupérer que les statuts A qui sont précédés par un statut D. Voir le fichier en pièce jointe pour plus d'explication.

    Merci
    Fichiers attachés Fichiers attachés

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    C'est exactement ce que fait la requête proposée par Waldar.

    Vous voulez sûrement dire "les statuts A qui sont directement précédés par un statut D"

    Non testé mais je pense que ça devrait donner le bon résultat
    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
    SELECT T1.id_contrat, T1.fk_service, T1.statut_service, T1.date_saisie
      FROM STATUT_CONTRAT AS T1
     WHERE T1.statut_service = 'A'
       AND EXISTS (SELECT NULL
                     FROM STATUT_CONTRAT AS T2
                    WHERE T2.statut_service = 'D'
                      AND T2.id_contrat = T1.id_contrat
                      AND T2.date_saisie < T1.date_saisie
    				  AND NOT EXISTS ( SELECT NULL 
    						FROM STATUT_CONTRAT AS T3
    						WHERE T3.statut_service <> 'A'
    						  AND T3.id_contrat = T2.id_contrat
    						  AND T3.date_saisie > T2.date_saisie 
    							)
    			 )

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Par défaut
    oui c'est bien ça, statut A directement précédé par statut D.

    Merci.

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

Discussions similaires

  1. Requête SQL pour décaler des lignes
    Par dekalima dans le forum Requêtes
    Réponses: 9
    Dernier message: 25/01/2011, 11h06
  2. Requête SQL : Afficher les colonnes en ligne, et vice versa
    Par paflolo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 17/03/2009, 09h16
  3. [MySQL] Problème récupération variable pour requête SQL !!
    Par mLk92 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 01/06/2006, 16h08
  4. [MySQL] requête SQL MAX puis récupération de la valeur
    Par zulot dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/02/2006, 14h17
  5. [MySQL] Requête SQL qui zappe la premiere ligne
    Par mulbek dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/01/2006, 16h24

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