0

データは次のようになります。

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
4

2 に答える 2