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] Le minimum du maximum


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 123
    Points
    123
    Par défaut [MySQL] Le minimum du maximum
    Salut,
    j'ai un petit problème en SQL dans ma BDD MySQL je dispose d'une table de valeurs définies comme suit (j'ai simplifié ma table pour l'exemple) :

    [lettres]
    id | nom | date

    avec un exemple d'enregistrements :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    1 | A | 2006-09-01
    2 | A | 2006-09-02
    3 | A | 2006-09-03
    4 | B | 2006-09-01
    5 | B | 2006-09-02
    6 | B | 2006-09-03
    7 | C | 2006-09-01
    8 | C | 2006-09-02
    En fait j'ai des valeurs avec des dates de mises à jour, toutes les dates sont consecutives. Mais toutes les mises à jour ne sont pas forcement faites en temps voulu comme dans l'exemple la valeur 'C' n'a pas été mise a jour le 2006-09-03, mon problème c'est de sélectionner la plus petite date du maximum (pour qu'elle soit commune à toute tout en étant le maximum)

    j'ai trouvé que cette requête fonctionnait mais ca met 3 plombes à s'éxecuter, est ce que quelqu'un a une idée pour l'améliorer ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MIN(date) FROM lettres 
    WHERE date IN (SELECT MAX(date) FROM lettres GROUP BY nom)
    merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 99
    Points : 123
    Points
    123
    Par défaut
    Ne vous cassez pas la tête quelqu'un m'a gentillement aidé

    voila la solution si jamais ca interesse quelqu'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MIN(`date`) FROM 
    (SELECT MAX(`date`) AS `date` FROM `lettres` GROUP BY `nom`) `table1`

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 46
    Points
    46
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(date) FROM lettres GROUP BY nom

    Il me semblait que le champs "nom" du group by doit impérativement etre citer dans le select pour que la requete marche.

    Mais c'est peut-être surtout à l'inverse que les champs du select doivent imperativement etre citer dans le group by pour qu'elle marche.

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

Discussions similaires

  1. Vérifie CheckboxList 1 minimum, 2 maximum
    Par crahier dans le forum ASP.NET
    Réponses: 2
    Dernier message: 01/10/2008, 08h41
  2. VB<2005>minimum ou maximum des valeurs
    Par matrixdine dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/09/2008, 02h42
  3. [C#] Controle de saisie : Minimum et maximum de 3 caractères
    Par slideveloppeur2006 dans le forum Framework .NET
    Réponses: 5
    Dernier message: 15/04/2008, 11h34
  4. Minimum et maximum sans utiliser de comparaison
    Par lemgarba3 dans le forum Pascal
    Réponses: 2
    Dernier message: 08/11/2007, 19h14
  5. minimum et maximum
    Par devdébuto dans le forum C
    Réponses: 7
    Dernier message: 06/11/2005, 05h54

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