Vue SQL seulement la plus grosse date

Résolu
MLPBeatIt -  
 Utilisateur anonyme -
Bonjour à vous !

J'aurais besoin d'un coup de pouce pour une créer une vue.

J'ai trois champs A, B et C :

A correspond à une clef étrangère, pointant vers un parent.
B correspond à une date
et C est une description

J'aurais voulu obtenir un seul C par A, ayant pour critère d'avoir le B le plus grand parmis tous les B de A.

J'ai essayé ça mais pas très concluant :

SELECT A, B, C
FROM foo
GROUP BY A
ORDER BY B DESC

J'ai tenté autre chose mais même résultat :

SELECT A, B, C, MAX(B) as max_B
FROM foo
GROUP BY A
ORDER BY max_B DESC

Quelqu'un aurait-il une idée ? :< Je ne vois vraiment pas comment faire

3 réponses

  1. Utilisateur anonyme
     
    donc autant pour moi je me suis emmélé, on doit joindre sur A et non C :


    SELECT A, B, C
    FROM foo f1
    where B = (select MAX(B) from foo f2 where f2.A = f1.A)
    GROUP BY C

    voilà mon résultat :


    20 31/10/2013 00:00:00 31/10
    10 09/10/2013 00:00:00 test 09/10
    1
    1. MLPBeatIt
       
      Excellent ! ça marche niquel, vraiment merci :D tu me sauves la vie
      0
    2. Utilisateur anonyme
       
      pas de soucis, bon dev ;)
      naga
      0
  2. Utilisateur anonyme
     
    salut,

    SELECT A, B, C
    FROM foo f1
    where B = (select MAX(B) from foo f2 where f2.C = f1.C)
    GROUP BY C

    ca devrai convenir.

    naga
    0
  3. MLPBeatIt
     
    ça ne fonctionne pas, j'ai plein de résultats différents :/

    Mais regarde ma table et les résultats que je voudrais sortir :
    http://img11.hostingpics.net/pics/924007data.png

    ça sera sûrement plus parlant que mes explications ^^

    1 seul résultat par A distinct, sélectionné sur la date la plus haute parmis toutes les lignes ayant le même A
    0
    1. Utilisateur anonyme
       
      je monte la table dans ma base et je te réponds.
      0