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 qui retourne la derniere ligne d'un ensemble de tuple


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 19
    Points
    19
    Par défaut requète qui retourne la derniere ligne d'un ensemble de tuple
    Bonjour,

    Je souhaite faire une requète qui me retourne une liste d'enregistrement en prenant exclusivement la valeur correspondant au dernier etat !

    En principe cela c'est pas compliqué mais la je ne trouve pas !

    J'ai cette table :

    id_boite int primary key
    id_etat int

    et voila un exemple de données :

    1 | 45
    1 | 46
    1 | 47
    2 | 55
    2 | 56
    3 | 35

    et voila le resultat que je voudrais avec la requète :

    1 | 47
    2 | 56
    3 | 35

    Merci beaucoup

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Je doute que id_boite soit primary key si votre exemple de données correspond à la description de la table que vous avez donnée

    Souhaitez-vous obtenir la dernière ligne parce que c'est la valeur maximale ?
    Si tel est le cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT id_boite, MAX(id_etat)
    FROM maTable
    GROUP BY id_boite
    Sinon, ne connaissant pas très bien l'utilisation des fonctions de classement, je peux vous proposer ceci, mais quelqu'un aura probablement une meilleure solution :

    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
    16
    17
    18
    19
    SELECT SUP.id_boite,
    		SUP.id_etat
    FROM (
    	SELECT id_boite,
    		id_etat,
    		ROW_NUMBER() OVER (PARTITION BY id_boite ORDER BY id_boite) nIndice
    	FROM maTable
    	) SUP
    JOIN (
    	SELECT id_boite, MAX(nIndice) nIndice
    	FROM ( 
    		SELECT id_boite,
    			id_etat,
    			ROW_NUMBER() OVER (PARTITION BY id_boite ORDER BY id_boite) nIndice
    			FROM maTable
    		) TMP
    	GROUP BY id_boite
    	) SUB ON SUP.id_boite = SUB.id_boite
    		AND SUP.nIndice = SUB.nIndice

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Parfait !!! je savais que c'etait un cas d'école ! pour ta premiere proposition ... malheureusement je n'arrive pas à m'y faire LOL

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    malheureusement je n'arrive pas à m'y faire
    C'est à dire ?

    @++

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    Que c'est pas la premiere fois que je dois faire cette petite requète est que a chaque fois j'oubli ! lol

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

Discussions similaires

  1. fonction prédéfini qui retourne numéro de ligne selectionné ?
    Par khadi8 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 11/04/2012, 09h26
  2. [MySQL] Requête qui retourne un mauvais résultat
    Par chris22 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/03/2012, 16h15
  3. [MySQL] Optimiser le temps de traitement d'une simple requête qui retourne 800 000 lignes.
    Par kamnouz dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 17/06/2011, 18h37
  4. Requête qui retourne la somme totale de durées
    Par fayred dans le forum Requêtes
    Réponses: 3
    Dernier message: 04/01/2008, 16h21
  5. un SELECT qui retourne plus de ligne que la table
    Par gomodo dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/10/2007, 14h17

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