【发布时间】:2021-11-25 17:19:14
【问题描述】:
我有一张表格,里面有我的用户数据。
| Id | Name | VersionId |
|---|---|---|
| 1 | Name A | 1 |
| 2 | Name B | 2 |
| 3 | Name C | 1 |
| 4 | Name A | 2 |
| 5 | Name E | 1 |
| 6 | Name F | 3 |
| 7 | Name G | 2 |
| 8 | Name C | 4 |
| 9 | Name A | 5 |
还有第二个表格,其中我代表了每个用户所在的版本:
| Id | Version |
|---|---|
| 1 | 1.2 |
| 2 | 1.3 |
| 3 | 1.4 |
| 4 | 1.5 |
| 5 | 1.6 |
我在编写查询以返回当前版本为 1.3 的用户时遇到问题。如果用户在某个时候已经拥有 1.3 版,但目前已不在其中,则不应选择此值。 随着时间的推移,用户可以转换多个版本。在查询中,我只想要当前使用 1.3 版的用户。也就是说,只有 ID 为 2 和 7 的用户。
【问题讨论】:
-
第二个表中的一个用户可以有多行?
-
你真的想要最大值还是想要每个用户的最后一个值?
-
@OlivierJacot-Descombes 随着时间的推移,用户可以转换多个版本。在查询中,我只想要当前使用 1.3 版的用户。也就是说,只有 ID 为 2 和 7 的用户。名为“名称 A”的用户曾在 1.3 版中的某一时刻,但目前其版本为 1.6,因此不应返回。
-
这些是字符串还是数字?
-
嗯,它不能是整数,但我想你的意思是小数。
标签: sql-server select max