1
SELECT AnotherID, TID, TDate, COUNT(*) AS Total
FROM MyTable
GROUP BY TID
HAVING Total > 1

上記のクエリは、複数のレコードが同じTIDを持つレコードを返します。次に、最新の日付を選択する必要があります。

上記のクエリはTDateを返しますが、最新のものではありません。基本的に、TIDでグループ化し、TDateが最新であるレコードを取得する必要があります。複数のレコードが同じTIDを持つレコードのみを取得する必要があります。

注:適切なAnotherIDフィールドが選択されないため、MAX(TDate)を使用することはできません

4

1 に答える 1

2

TDateデータ型がdateまたはであると仮定するとdatetimeMAX(TDate)グループ化された各データの最新の日付が表示されますTID

SELECT t1.AnotherId, t1.TID, t2.MaxTDate, t2.Total
FROM MyTable AS t1
INNER JOIN
(
   SELECT TID, MAX(TDate) AS MaxTDate, COUNT(*) AS Total
   FROM MyTable 
   GROUP BY TID
   HAVING Total > 1
) AS t2  ON t1.TID   = t2.TID
        AND t1.TDate = t2.MaxTDate;
于 2013-03-25T14:33:49.423 に答える