Requête SQL

Fermé
theo99 Messages postés 3 Date d'inscription lundi 9 avril 2001 Statut Membre Dernière intervention 16 décembre 2010 - 15 déc. 2010 à 17:53
DROE Messages postés 148 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 - 18 déc. 2010 à 15:21
Bonjour,

Une question de débutant ORACLE à vous les confirmés, dans la table suivante et dont les enregistrements sont:

NOM DATE MONTANT
952r010001 27.07.2007 0.0017
952r010001 25.09.2006 0.002
952r010001 23.04.2005 0.005
952r010002 21.07.2009 0.0015

Je veux, pour ces données, ne ressortir que les lignes par nom à la date la plus récente.

SELECT MAX(DATE), NOM, MONTANT
FROM MA_TABLE
GROUP BY NOM, MONTANT

Pour obtenir:

NOM DATE MONTANT
952r010001 27.07.2007 0.0017
952r010002 21.07.2009 0.0015

Qui me corrige s'il vous plait ?

Merci...

3 réponses

DROE Messages postés 148 Date d'inscription mardi 5 mai 2009 Statut Membre Dernière intervention 26 juillet 2012 48
18 déc. 2010 à 15:21
SELECT NOM, DATE, MONTANT
FROM ma_table
WHERE (NOM,DATE) IN (SELECT NOM, MAX(DATE)
FROM ma_table
GROUP BY NOM);



http://www.dba-ora.fr
2
Profil bloqué
15 déc. 2010 à 18:56
SELECT MAX(DATE), NOM, MONTANT,DATE
FROM MA_TABLE
ORDER BY date
GROUP BY NOM, MONTANT

apres "date" dans le order du indique
ASC pour ascendant ou
DESC pour l'inverse , sachant que par defaut c'est ASC
0
theo99 Messages postés 3 Date d'inscription lundi 9 avril 2001 Statut Membre Dernière intervention 16 décembre 2010
16 déc. 2010 à 12:35
Bonjour Damienmv,

Je te remercie pour ta réponse, toutefois celle ci n'épure pas ma table comme je le voudrais. En effet, je ne cherche à obtenir, pour chaque nom, que le montant à la date max (la plus récente).

Une correction à me proposer ?

Encore merci
0
Profil bloqué
16 déc. 2010 à 16:23
je sais pas si c'est cela , mes dit moi si c'est pas sa :)

bn courage ..


SELECT MAX(DATE) AS datemax, NOM, MONTANT,DATE
FROM MA_TABLE
ORDER BY datemax
GROUP BY NOM, MONTANT
0