1

重複する値を削除する必要があるデータをまとめている SQL のビューがあります。DISTINCT と GROUP BY を使用してみましたが、成功しませんでした。基本的には、ドキュメントのタイプに基づいてプロバイダーに添付される一連のアップロードされたファイルです。署名のさまざまな段階を経るにつれて、ドキュメントの複数のバージョンがアップロードされます。

ドキュメントの新しいフェーズをアップロードするたびに、UploadedDocuments テーブルに新しい行が追加されます。RequiredDocumentsID は同じままですが、UploadedFiles テーブルのファイル名 (およびそのテーブルの ID フィールド) は新しくなります。

通常、この情報は一度に 1 つのプロバイダーで検索されるため、歴史的にはこれは問題ではありませんでした。この場合、ドキュメントの種類ごとに最新のものを取得するだけです。ただし、すべてのプロバイダーを一度に表示する必要がある作業中の新しいページがありますが、各プロバイダーを一度だけリストし、最新のファイル名/パス列のみをリストする必要があります。

以下は、私が現在持っているビューです。前述のように、最初の値を「DISTINCT dbo.ReqDocuments.ID」として配置し、GroupBy を実行しようとしました。どちらの論文も重複を排除できませんでした。組み込み選択または OUTER 適用を考えていましたが、私の 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)
4

3 に答える 3

0

このクエリは、重複するアイテムを見つけます

 SELECT t1.ID  FROM Table t1,Table t2  where  t1.Name=t2.Name and t1.ID>t2.ID
于 2013-06-22T17:02:07.597 に答える