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 :

[MySQL 3.23] Récupérer la date la plus récente


Sujet :

Langage SQL

  1. #1
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut [MySQL 3.23] Récupérer la date la plus récente
    Bonjour à tous,
    j'essai de faire une requete qui me permet de récupérer un numéro de comtpe ainsi que la date de la derniere connexion. Ma requete est de ce type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT t1.champ1, t2.num_compte, t1.date
    FROM t1 INNER JOIN t2 ON t1.id1=t2.id2
    WHERE t2.num_comtpe IN ("liste de valeurs");
    Mais le probleme c'est que je ne veux que les dates les plus récentes pour chaque num_compte. Comment faire ? Merci de votre aide.

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Essayez avec une sous-requête retournant le max de la date avec la jointure adéquate (un exemple de Xo figure dans cette FAQ il me semble).

  3. #3
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Merci j'ai trouvé l'article dont tu parles mais je bosse sur une version de mysql qui ne comprend pas les requetes imbriquées. Alors comment puis faire ca sans requetes imbriquées ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Mars 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo

    Informations forums :
    Inscription : Mars 2006
    Messages : 400
    Points : 562
    Points
    562
    Par défaut
    La date la plus récente est celle pour laquelle aucune autre date n'est plus récente.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT t1.champ1, t2.num_compte, t1.date
    FROM t1 INNER JOIN t2 ON t1.id1=t2.id2
      LEFT JOIN t1 as A ON A.date>t1.date AND A.id1=t2.id2
    WHERE t2.num_comtpe IN ("liste de valeurs")
      AND A.date IS NULL

  5. #5
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Merci pour la requete mais ne marche pas, il me dit qu'il manque un mot clé

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut Max + Group By
    MAX(t1.date) associé à un GROUP BY t1.champ1, t2.num_compte ne marche pas ?

  7. #7
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    J'ai essayé avec le MAX mais le souci c'est que la requete se lance, mais elle ne s'arrete pas, elle tourne sans cesse. Donc pas terrible...

  8. #8
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par griese
    Merci j'ai trouvé l'article dont tu parles mais je bosse sur une version de mysql qui ne comprend pas les requetes imbriquées. Alors comment puis faire ca sans requetes imbriquées ?
    Salut,

    Le mieux serait de toujours préciser le SGBD et sa version, dès le départ (cf les tags)

    Une proposition existe dans la FAQ MySQL : Comment pallier l'absence de requêtes imbriquées dans les versions < 4.1 ?

  9. #9
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Par contre mon champ date est défini dans la base au format VARCHAR et non au format DATE. Est-ce que cela peut poser un problème dans le fait que la requete s'execute bien mais qu'elle ne s'arrete pas ?

  10. #10
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Ca m'étonnerait un peu, mais si tu nous postais la structure des tables, et un jeu de données pour essayer, ça pourrait nous aider à t'aider

    En passant, as-tu essayé sur 2 tables de tests avec peu de données pour voir si la "non-réponse" de ta requête est dûe à un problème de performances ?

  11. #11
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Non je n'ai pas essayé avec des tables plus petites. Mais j'ai un souci avec ma base, donc je vais pas pouvoir tester maintenant. Voila la structure de ma table :
    TABLE 1 :
    ID | CHAMP1 | CHAMP2 | DATE
    1 | dfsdfsdf | dfzfzef | 20/12/2006
    1 | dfsdfsdf | dfzfzef | 12/10/2006
    2 | dfsdfsdf | dfzfzef | 14/06/2006
    3 | dfsdfsdf | dfzfzef | 01/09/2006
    2 | dfsdfsdf | dfzfzef | 26/04/2006
    4 | qsdqsd | dfsdfsd | 17/05/2005

    Et je veux pouvoir afficher ceci :

    ID | CHAMP1 | CHAMP2 | DATE
    1 | dfsdfsdf | dfzfzef | 20/12/2006
    2 | dfsdfsdf | dfzfzef | 14/06/2006
    3 | dfsdfsdf | dfzfzef | 01/09/2006
    4 | qsdqsd | dfsdfsd | 17/05/2005

    Voilà

Discussions similaires

  1. [VxiR2] Dans une colonne récupérer la date la plus récente
    Par BipBipBO dans le forum Deski
    Réponses: 10
    Dernier message: 06/01/2024, 15h55
  2. Récupérer la date la plus récente
    Par charlingals1 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/04/2011, 14h51
  3. Récupérer la date la plus proche
    Par Angy987 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 16/06/2010, 10h53
  4. Réponses: 8
    Dernier message: 12/11/2008, 17h07
  5. Extraire la date la plus récente Database MYsql
    Par brazza dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/11/2004, 02h34

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