2009-12-17 3 views
0

Я хочу получить последнюю дату в таблице (12/3/09) и показать каждую ячейку в поле, так как последнее свидание.Выберите максимальную дату и затем выберите последнюю дату для каждой записи в группе с максимальной даты

 
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 

Урожайность этого:

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

Желаемый результат:

 
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 

Любая помощь очень ценится.

+0

ли Вы хотите сделать это в чистом ANSI SQL или можно указать решение DB, который вы используете , – GrayWizardx

+0

Итак, вам нужны только самые последние данные для каждой скважины? – John

+0

Я использую MS Access 2007. И Джон W, я хочу, чтобы данные на определенную дату для ВСЕХ скважин в FIELD, независимо от того, когда произошел TESTDATE. – Tron

ответ

1

Один из вариантов: Получить дату вы хотите от подзапроса и присоединиться к его обратно к главному столу:

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 
Смежные вопросы