2009-12-17 7 views
0

Je veux obtenir la dernière date dans le tableau (03/12/09) et montrer chaque puits dans un champ, depuis le dernier rendez-vous.Sélectionnez la date maximale, puis sélectionnez la dernière date pour chaque enregistrement dans un groupe depuis la date maximale

 
Field, Well, TestDate, Amount 
X, A, 12/1/09, 500 
Y, D, 12/1/09, 400 
Y, E, 12/1/09, 300 
Y, F, 12/2/09, 50 
X, B, 12/2/09, 40 
Z, G, 12/2/09, 30 
X, C, 12/3/09, 512 
Y, D, 12/3/09, 425 
Z, G, 12/3/09, 31 
SELECT Field, Well, Amount, Last(Date) as LastDate 
    FROM table1 
    GROUP BY Field, Well, Amount 
    ORDER BY Last(Date), Field, Well 

Rendements ceci:

 
X, C, 12/3/09, 512 
Y, D, 12/3/09, 425 
Z, G, 12/3/09, 31 

Le résultat souhaité:

 
X, A, 12/1/09, 500 
X, B, 12/2/09, 40 
X, C, 12/3/09, 512 
Y, D, 12/3/09, 425 
Y, E, 12/1/09, 300 
Y, F, 12/2/09, 50 
Z, G, 12/3/09, 31 

Toute aide est très appréciée.

+0

Voulez-vous le faire dans le plus pur ANSI SQL ou peut vous indiquer la solution DB que vous utilisez . – GrayWizardx

+0

Vous ne voulez donc que les données les plus récentes pour chaque puits? – John

+0

J'utilise MS Access 2007. Et John W, je veux les données pour une certaine date pour TOUS les puits dans un domaine, indépendamment du moment où le TESTDATE s'est produit. – Tron

Répondre

1

Une option: Obtenir la date que vous voulez à partir d'un sous-requête et rejoindre à la table principale:

SELECT Field, Well, LastDate, Amount from table1 t1 
join (
SELECT MAX(Date) as LastDate From Table1 Group by Well 
) t2 on t1.Date = t2.LastDate 
Questions connexes