我已經繼承了一個數據庫,並且在構建正在運行的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