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

Requêtes MySQL Discussion :

Comment faire une telle requette ?


Sujet :

Requêtes MySQL

  1. #1
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut Comment faire une telle requette ?
    Salut tout le monde
    Je bloque sur la façon de construire ma requete.

    Alors voila la structure de ma table

    Nom | Datetime | C1 | C2 |
    A 2004-02-01 12:00:00 01 01
    A 2005-02-01 12:00:00 06 01
    B 2003-01-01 12:00:00 07 01

    Et en fait je voudrais que ma requete me donne toutes les lignes, sans doublons de nom et qu'elle affiche celui qui a la date la plus récente soit:


    Nom | Datetime | C1 | C2 |
    A 2005-02-01 12:00:00 06 01
    B 2003-01-01 12:00:00 07 01


    Si quelqu'un peut m'aider !

  2. #2
    Membre averti Avatar de piff62
    Inscrit en
    Décembre 2003
    Messages
    431
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2003
    Messages : 431
    Points : 417
    Points
    417
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT * from taTable GROUP BY nom ORDER date DESC;
    Essais ca .. je suis pas sur de moi sur le coup

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    non cette solution ne fonctionne pas correctement , j ai pas la date la plus récente qui s affiche.

  4. #4
    Membre averti Avatar de piff62
    Inscrit en
    Décembre 2003
    Messages
    431
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2003
    Messages : 431
    Points : 417
    Points
    417
    Par défaut
    Tu as quoi comme affichage avec la requete que que je tai donne ?

  5. #5
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    celui-ci:


    Nom | Datetime | C1 | C2 |
    A 2004-02-01 12:00:00 01 01
    B 2003-01-01 12:00:00 07 01

    j'ai l impression que le "order" n' a pas d influence a cause du "group"

  6. #6
    Membre averti Avatar de piff62
    Inscrit en
    Décembre 2003
    Messages
    431
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Décembre 2003
    Messages : 431
    Points : 417
    Points
    417
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT DISTINCT * from taTable GROUP BY nom ORDER BY date DESC;
    J'ai oublie le BY apres le ORDER ..
    Sinon essais de remplacer le DESC par ASC

  7. #7
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    j'avais corriger pour le by ;-)

    Mais aucune influence du desc ou du asc.

  8. #8
    Membre habitué
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mars 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 251
    Points : 174
    Points
    174
    Par défaut
    Il te faut faire une comparaison avec un ANY.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT(t1.Nnom)
    FROM table t1
    WHERE t1.date < ANY (SELECT t2.date
                                      FROM table t2
                                      t2.nom <> t1.nom)
    ca devrait fonctionner, non ?

  9. #9
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    Non sela ne fonction pas , car la commande ANY, fait le test si au moins une des ligne de la table 2 est vrai

  10. #10
    Membre averti

    Homme Profil pro
    Inscrit en
    Octobre 2003
    Messages
    908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 908
    Points : 447
    Points
    447
    Par défaut
    par contre cette requete fonction trés bien

    SELECT t1.* FROM table as t1 WHERE t1.datetime=(SELECT max(t2.datetime) FROM table as t2 where t2.nom=t1.nom)

    Merci à tous

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 19/05/2011, 13h33
  2. Comment faire une telle methode? (Débutant )
    Par pracede2005 dans le forum Langage
    Réponses: 8
    Dernier message: 30/04/2007, 11h36
  3. Réponses: 2
    Dernier message: 31/03/2007, 15h05
  4. [VB6] Comment faire une fonction qui renvoie 2 résultats
    Par tazarine dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/01/2004, 00h13
  5. Réponses: 10
    Dernier message: 10/10/2003, 14h25

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