私はかなり長い間SQLクエリを操作する必要はありませんでしたが、単純なクエリのように見えることが私を狂わせています。さまざまな基準に基づいて繰り返しを選択しようとしているトランザクションのテーブルがあります。関連するテーブル構造は次のとおりです。
[Transaction]
* ID int
Transacted datetime
Name nvarchar(50)
Description nvarchar(4000)
size bigint
この表から、名前/サイズの重複を見つけて、日付と説明が異なっていても、名前が同じサイズのトランザクションを持っていたすべてのレコードを報告する必要があります。次の名前だけでカウントを取得できます。
SELECT Name, COUNT(Name) AS Count
FROM Transaction
GROUP BY Name
そして、残りのデータを取得するために、その内部結合を行うことができます。
SELECT data.ID, data.Transacted, data.Name, data.Description, data.Size, counts.Count
FROM (SELECT Name, COUNT(Name) AS Count
FROM Transaction
GROUP BY Name) AS counts
INNER JOIN Transaction AS data ON counts.Name = data.Name
WHERE (counts.Count > 1)
ORDER BY data.Name, data.Transacted
しかし、明らかにこれは、名前とサイズの両方が繰り返されるトランザクションではなく、名前が繰り返されるトランザクションのみを提供します。
行が同じ名前と同じサイズの繰り返しを示しているすべてのデータを報告するために、この部分を仕上げるのに役立つことを探しています。両方の列のデータを1つの結果に簡単に連結して比較することはできますが、それが最適なアプローチかどうかはわかりません。
前もって感謝します。