我已经继承了一个数据库,并且在构建正在运行的SQL查询时遇到了问题。获取带有附加信息的重复项
假设这是数据:
[Products]
| Id | DisplayId | Version | Company | Description |
|---- |----------- |---------- |-----------| ----------- |
| 1 | 12345 | 0 | 16 | Random |
| 2 | 12345 | 0 | 2 | Random 2 |
| 3 | AB123 | 0 | 1 | Random 3 |
| 4 | 12345 | 1 | 16 | Random 4 |
| 5 | 12345 | 1 | 2 | Random 5 |
| 6 | AB123 | 0 | 5 | Random 6 |
| 7 | 12345 | 2 | 16 | Random 7 |
| 8 | XX45 | 0 | 5 | Random 8 |
| 9 | XX45 | 0 | 7 | Random 9 |
| 10 | XX45 | 1 | 5 | Random 10 |
| 11 | XX45 | 1 | 7 | Random 11 |
[Companies]
| Id | Code |
|---- |-----------|
| 1 | 'ABC' |
| 2 | '456' |
| 5 | 'XYZ' |
| 7 | 'XYZ' |
| 16 | '456' |
的Version
列是一个版本号。数字越大表示更新的版本。 Company
列是Id
列中引用Companies
表的外键。 还有另一个表ProductData
与ProductId
列参考Products.Id
。
现在我需要根据DisplayId
和相应的Companies.Code
找到重复项。应加入ProductData
表以显示标题(ProductData.Title
),并且只有最近的应该包含在结果中。因此,预期的结果是:
| Id | DisplayId | Version | Company | Description | ProductData.Title |
|---- |----------- |---------- |-----------|------------- |------------------ |
| 5 | 12345 | 1 | 2 | Random 2 | Title 2 |
| 7 | 12345 | 2 | 16 | Random 7 | Title 7 |
| 10 | XX45 | 1 | 5 | Random 10 | Title 10 |
| 11 | XX45 | 1 | 7 | Random 11 | Title 11 |
- 因为XX45有2个“项”:一个公司5和一个与公司7,但两家公司共享相同的代码。
- 因为12345有2个“条目”:一个与公司2和一个与公司16,但两家公司共享相同的代码。请注意,两者的最新版本不同(公司16的条目的版本2和公司2的条目的版本1)
- 不应包含ABC123,因为它的2个条目具有不同的公司代码。
我很想知道您的见解...
乍看起来,这似乎是工作!让我测试一些,并接受你的答案,如果一切似乎罚款。 – Propaganistas
检查,如果它工作与否。 – Anagha