2009-12-17 236 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或者您可以指定要使用的数据库解决方案。 – GrayWizardx 2009-12-17 20:04:21

+0

那么你只需要每口井的最新数据? – John 2009-12-17 20:33:57

+0

我正在使用MS Access 2007.并且John W,我想要一个FIELD中所有井的特定日期的数据,而不管TESTDATE发生的时间。 – Tron 2009-12-29 17:34:42

回答

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