SQL - 选择所有最新的唯一记录

时间:2013-07-10 10:52:22

标签: sql ms-access excel-vba vba excel

我正在努力创建一个SQL查询来从Access数据库中选择一些记录(使用Excel VBA)。

其中一个表格的切割(我们称之为'table1')包含以下列:

| 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。

希望这是有道理的,如果不是抱歉 - 我正在努力表达我的意思!

由于

1 个答案:

答案 0 :(得分:1)

虽然从你的例子中你只是添加conditin作为phase ='Close'你会得到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)