1

Select MAX を使用して最新の [CreatedDateTime] を取得していますが、単一の結果ではなく、クエリで重複を取得していますか? 私の SQL クエリは次のようになります。

SELECT DISTINCT
i.[RecID] as AssigneeID,
t.[Owner],
t.[CreatedDateTime]
FROM Incident as i
Left Join Task as t
On i.[RecID] =  t.[ParentLink_RecID] 
WHERE
(t.[CreatedDateTime] IN (SELECT MAX(t.[CreatedDateTime])
        FROM Task as t
       GROUP BY t.[ParentLink_RecID]))
AND i.[Status] <> 'Closed'
AND t.[OwnerTeam] IS NOT NULL
Order By i.[RecID] ASC

重複した質問から追加されたサンプル データ:

AssigneeID                          CreatedDateTime
E94D6F547A73430BA75758C79D5BD8DB    28/05/2013 10:25
E94D6F547A73430BA75758C79D5BD8DB    28/05/2013 10:32
CB208EB6BCC24E1791F946F01D6AF97B    26/03/2013 15:14
CB208EB6BCC24E1791F946F01D6AF97B    16/05/2013 15:20
BE14926E300E45AD8A9A949114CE8026    29/04/2013 10:27
BE14926E300E45AD8A9A949114CE8026    01/05/2013 08:41

任意の支援をいただければ幸いです

4

2 に答える 2

2

あなたのin句は、特定の値の最大値だけでなく、任意CreatedDateTimeの値の最大値を選択しています-RecIDと最新の日付のみが必要な場合は、次を試してください: ParentLink_RecID RecID

SELECT i.[RecID] as AssigneeID, max(t.[CreatedDateTime]) CreatedDateTime
FROM Incident as i
Join Task as t On i.[RecID] =  t.[ParentLink_RecID] 
WHERE i.[Status] <> 'Closed'
  AND t.[OwnerTeam] IS NOT NULL
group by i.[RecID]
Order By i.[RecID] DESC
于 2013-06-16T16:30:05.097 に答える
0

の値が同じレコードが複数ある場合に取得できますCreatedDateTime。次のクエリはあなたが望むものだと思います。ここでは、作成された最新の日時を含む1行を選択し、それをフィルタリングします:

SELECT DISTINCT
i.[RecID] as AssigneeID,
t.[Owner],
t.[CreatedDateTime]
FROM Incident as i
Left Join Task as t
On i.[RecID] =  t.[ParentLink_RecID] 
WHERE t.[ParentLink_RecID] = (SELECT TOP 1 t.[ParentLink_RecID]
                              FROM Task as t
                              ORDER BY t.[CreatedDateTime] DESC)
AND i.[Status] <> 'Closed'
AND t.[OwnerTeam] IS NOT NULL
Order By i.[RecID] ASC
于 2013-06-15T08:16:40.003 に答える