2013-07-10 67 views
0

我在创建一个SQL查询以从Access数据库中选择一些记录(使用Excel VBA)挣扎了一下。SQL - 选择所有最新的唯一记录

表(姑且称之为“表1”)有如下的一列的切面:

| my_id | your_id | phase | 

| 1  | 1  | Open | 

| 2  | 1  | Close | 

| 3  | 2  | Open | 

| 4  | 3  | Close | 

| 5  | 2  | Close | 

| 6  | 3  | Open | 

字段“添加my_id”将永远是一个独特的价值,而“YOUR_ID”字段可以包含重复。

我想要做的是从表中选择'your_id'的最近记录,其中阶段是'关闭'。这样在上面的例子表意味着它会选择5,4 & 2.

希望这是有道理的,对不起,如果不是 - 我努力阐明我的意思!

感谢

+2

你能在给定的表解释'最近record',我的意思是它记录排除比其他阶段<>'关闭' – Romesh

+0

感谢您的评论 - 现在解决Nitin下面的答案。 – Gareth

回答

1

虽然从乌尔例如,如果你刚刚加入其中conditin相位=“关闭” U将得到的5,4和2的记录,但我假设,有可能是情景(而不是在乌尔例如),其中超过1个记录可以拿出地位关闭任何给定YOUR_ID这样的查询应该是这样的

Select * from table1 where my_id in (
    Select Max(My_Id) from table1 where phase='Close' group by your_id) 
+0

非常感谢!也感谢您解释我的模糊问题! – Gareth