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 :

Lister les lignes les plus récentes


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2008
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2008
    Messages : 107
    Points : 50
    Points
    50
    Par défaut Lister les lignes les plus récentes
    Bonjour tout le monde,

    Voici mon problème je dispose d'une liste de mesures suivante :

    src1 dst2 1 janvier 2010
    src1 dst3 19 décembre 2009
    src1 dst2 18 décembre 2009
    ...

    Je souhaiterais n'avoir que les dernières mesures c'est à dire dans mon cas la 1 ère et 2ème ligne car les pairs (src et dst) ne sont pas les mêmes.

    J'ai utilisé DISTINCT mais je ne peux que récupérer que les 2 premières colonnes mais il me faudrait également la colonne de la date.

    Sinon j'ai aussi regardé du côté du GROUP BY mais sans succès.

    Merci d'avance pour vos réponses.

    Narglix

    Quelqu'un aurait-il une idée ?

  2. #2
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Bonjour,

    Si tu veux récupérer les X premières lignes de ta table, tu peux utiliser le mot-clé LIMIT X.

    Dans ton cas, ça fera un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * from ta_table LIMIT 2;

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Soit tu ne veux que les colonnes SRC, DST, et MA_DATE. Et la simple requete
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select SRC, DST, Max(MA_DATe) as MAX_DATE
    	from MA_TABLE
    group by SRC, DST
    Soit c'est le cas classique de je veux les lignes pour lesquelles le max est atteint. parce que tu veux d'autres colonnes que celles que tu montre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select T.SRC, T.DST, T.MA_DATE, --D'autres colonnes de T.
    from Ma_TABLE T
    inner join
    	(select SRC, DST, Max(MA_DATe) as MAX_DATE
    	from MA_TABLE
    	group by SRC, DST) TM
    	on T.SRC=TM.SRC
    	AND T.DST=TM.DST
    	AND T.MA_DATE=MAX_DATE
    A+
    Soazig

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    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 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Citation Envoyé par poustiquette Voir le message
    Si tu veux récupérer les X premières lignes de ta table, tu peux utiliser le mot-clé LIMIT X.
    A la condition d'utiliser un SGBD qui reconnaisse le clause LIMIT... qui n'appartient pas à la syntaxe du langage SQL normalisé
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Membre éclairé Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Points : 769
    Points
    769
    Par défaut
    De plus, l'ordre de retour des lignes n'est pas défini s'il n'y a pas de clause ORDER BY, donc mettre juste un LIMIT comme ça ne permet pas de garantir qu'on obtiendra les lignes les plus récentes.
    A bove ante, ab asino retro, a stulto undique caveto

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/10/2013, 11h37
  2. Réponses: 1
    Dernier message: 21/03/2013, 16h17
  3. Garder les lignes les plus récentes
    Par toutwoui dans le forum Solaris
    Réponses: 3
    Dernier message: 18/07/2012, 11h21
  4. Trouver la ligne la plus récente
    Par youba11 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/10/2009, 01h06
  5. Récupérer la ligne la plus récente
    Par DeezerD dans le forum Requêtes
    Réponses: 2
    Dernier message: 01/04/2007, 13h13

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