我在 SQL 中有一个视图,它汇集了一些我需要消除重复值的数据。我曾尝试使用 DISTINCT 和 GROUP BY,但没有成功。基本上我们所做的是一系列上传的文件,这些文件根据文档类型附加到提供者。当文档经历不同的签名阶段时,他们将上传文档的多个版本。
每次他们上传文档的新阶段时,都会在 UploadedDocuments 表中添加一个新行,RequiredDocumentsID 保持不变,但 UploadedFiles 表中的文件名(以及该表中的 ID 字段)是新的。
从历史上看,这不是问题,因为我们通常一次查找一个提供者的信息——在这种情况下,我们只为每种文档类型获取最新的信息。然而,现在我们有一个正在处理的新页面,它需要一次显示所有的提供程序,但它只需要列出每个一次并且只列出最近的文件名/路径列。
以下是我目前的观点。如前所述,我尝试将第一个值作为“DISTINCT dbo.ReqDocuments.ID”以及进行 GroupBy。这两个都未能消除任何重复。我在考虑嵌入式选择或外部应用,但我的 tSQL 技能还没有达到那个水平。
SELECT dbo.UploadedFiles.FileName, dbo.UploadedFiles.FilePath,
dbo.ReqDocuments.ProviderID, dbo.Providers.CompanyName,
dbo.ReqDocuments.ID AS RequiredDocumentID, dbo.UploadedFiles.aDate,
dbo.UploadedFiles.aUser
FROM dbo.Providers
INNER JOIN dbo.ReqDocuments ON dbo.Providers.ID = dbo.ReqDocuments.ProviderID
INNER JOIN dbo.UploadedFiles ON dbo.ReqDocuments.ID = dbo.UploadedFiles.ReqDocumentsID
WHERE (dbo.ReqDocuments.DocumentID = 50)