Vue SQL seulement la plus grosse date

Résolu
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. 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. Excellent ! ça marche niquel, vraiment merci :D tu me sauves la vie
    2. pas de soucis, bon dev ;)
      naga
  2. 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
    1. ç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
      1. je monte la table dans ma base et je te réponds.