2
我有一個包含文檔ID列和日期列的視圖以及與此問題無關的其他一列。可以有多個具有相同文檔ID的行,但日期通常不同。這表示它是同一個文件,只是對它的修訂。問題是,如果我有兩行文檔ID和日期相同,我都會得到。我只想得到一個。無論哪一個,只要我只有一個。如果值相同,SQL Max會返回重複項
以下內容在文檔ID和日期相同的情況下是重複的。
SELECT FSD.*
FROM vFSD FSD
INNER JOIN
(
SELECT InternalID, MAX(FileLastUploadedDate) AS FileLastUploadedDate
FROM vFSD
GROUP BY InternalID
) gFSD ON FSD.InternalID = gFSD.InternalID AND FSD.FileLastUploadedDate = gFSD.FileLastUploadedDate
我也試過用DISTINCT,但它沒有解決問題。
SELECT DISTINCT FSD.*
FROM vFSD FSD
INNER JOIN
(
SELECT DISTINCT InternalID, MAX(FileLastUploadedDate) AS FileLastUploadedDate
FROM vFSD
GROUP BY InternalID
) gFSD ON FSD.InternalID = gFSD.InternalID AND FSD.FileLastUploadedDate = gFSD.FileLastUploadedDate
SELECT TOP 1等 –
事件看起來像內部的選擇將成爲你想要的行,然後你加入獲得更多的行。 – Randy
注意:重複的*必須*從JOIN引入FSD(讀取,必須在* FSD中重複*)作爲子選擇*不能*由於在GROUP BY中的參與而包含重複的內部Id記錄。 (並且DISTINCT完全沒有效果。) – user2246674