Group by avec la fonction Max()
Bonjour à tous,
Je voudrais récupérer une (et une seule) ligne dans ma table en filtrant sur le champs date le plus récent.
Structure de ma table, qu'on va appeler TABLE_TEST
Code:
1 2 3 4 5 6 7
|
|DATE |VALEUR1 |VALEUR2 |
|200501 | TOTO | TRUC |
|200605 | TOTO | TRUC |
|200702 | TOTO | MACHIN |
|200602 | TITI | MACHIN |
|200701 | TATA | CHOSE | |
et je lance cette requête :
Code:
1 2 3 4
|
select MAX(to_number(A.DATE)), A.VALEUR1, A.VALEUR2
from TABLE_TEST A
group by A.DATE, A.VALEUR1, A.VALEUR2 |
mais ça me renvoie ça :
Code:
1 2 3 4 5 6
|
|DATE |VALEUR1 |VALEUR2 |
|200605 | TOTO | TRUC |
|200702 | TOTO | MACHIN |
|200602 | TITI | MACHIN |
|200701 | TATA | CHOSE | |
ce qui est normal, je l'admets, puisque je groupe par VALEUR1 et VALEUR2
mais moi ce que je voudrais c'est arriver à ce résultat :
Code:
1 2 3
|
|DATE |VALEUR1 |VALEUR2 |
|200702 | TOTO | MACHIN | |
mais quand j'enlève les deux champs dans le group by, il me fait une erreur...
Merci de votre aide! ^^
NB : l'intitulé du champs date est trompeur, en fait ce sont des varchar2(6)