0

我在创建一个 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。

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

谢谢

4

1 回答 1

1

尽管从您的示例中,如果您仅添加 where conditin as 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)
于 2013-07-10T11:02:05.500 回答