Vue SQL seulement la plus grosse date

Résolu/Fermé
MLPBeatIt - 17 oct. 2013 à 14:03
 Utilisateur anonyme - 17 oct. 2013 à 16:57
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
A voir également:

3 réponses

Utilisateur anonyme
17 oct. 2013 à 16:19
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
0
Utilisateur anonyme
17 oct. 2013 à 16:57
pas de soucis, bon dev ;)
naga
0
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
ç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
Utilisateur anonyme
17 oct. 2013 à 16:14
je monte la table dans ma base et je te réponds.
0