我在sql Server 2008中有2个表。源表有2个字段:userid
和date
(datetime)。目标表有4个字段: - userid
,Day
,startHour
和EndHour
- 。我需要找到重复的天数提取到目标表中的两个字段(startHour end EndHour)而不重复这一天。
来源表:
UserID TheDate
------ -----------------------
0001 2014-07-23 08:18:02.000
0001 2014-07-23 16:04:02.000
0002 2014-07-23 08:00:00.000
0003 2014-07-23 09:00:00.000
目标表:
UserID TheDate StartHour EndHour
------ ---------- ---------------- ----------------
0001 2014-07-23 08:18:02 16:04:02
0002 2014-07-23 08:00:00 NULL
0003 2014-07-23 09:00:00 NULL
答案 0 :(得分:0)
SELECT UserID
,DateOnly
,CONVERT(time, MIN(TheDate)) AS StartHour
,CASE WHEN MAX(TheDate) = MIN(TheDate)
THEN NULL
ELSE CONVERT(time, MAX(TheDate))
END AS EndHour
FROM #T
CROSS APPLY (
SELECT CONVERT(date, TheDate) AS DateOnly
) AS CA1
GROUP BY UserID
,DateOnly