データは次のようになります。
RN StartTime StopTime Activity
1 2013-02-03 12:07:39 2013-02-03 14:58:13 A1
2 2013-02-03 16:00:02 2013-02-04 04:25:32 A2
3 2013-02-04 04:25:32 2013-02-04 04:25:32 A2
4 2013-02-04 05:31:32 2013-02-04 05:57:32 A3
5 2013-02-04 06:24:32 2013-02-04 06:54:32 A4
行 3のStartTimeと行 2 & 3 のStopTimeは類似しています。次のようにフォーマットしたいと思います。
RN StartTime StopTime Activity
1 2013-02-03 12:07:39 2013-02-03 14:58:13 A1
2 2013-02-03 16:00:02 - A2
3 - 2013-02-04 04:25:32 A2
4 2013-02-04 05:31:32 2013-02-04 05:57:32 A3
5 2013-02-04 06:24:32 2013-02-04 06:54:32 A4
StartTime の問題は CASE ステートメントを使用して解決されますが、StopTimeで重複を見つけて、 RN が小さい方を「-」で更新する必要があります。
注: アクティビティは、重複の場合は常に同じになります。
これは私のクエリです:
SELECT CTE.RN,
(CASE
WHEN CONVERT(VARCHAR, StartTime, 120) = CONVERT(VARCHAR, StopTime, 120)
THEN '-'
ELSE CONVERT(VARCHAR, StartTime, 120)
END) As StartTime, StopTime
FROM CTE
ORDER BY StopTime