美好的一天,
我被困在这里,我迫切需要帮助...
显然,我正在尝试将两行合并为一列。
我目前的sql dan表设计是:
select * from timetable order by name, id
给了我这个:
有谁知道如何设计我的查询,以便我得到这样的结果:
Fyi,我正在使用Microsoft SQL Server 2005.
先谢谢你们! :)
很抱歉,我无法在此处上传图片。
抱歉......我发布了相同的图片!!对不起!!
我上传了新的..请看看..
答案 0 :(得分:1)
SELECT COALESCE(i.Name, o.Name) [Name],
i.Time [TimeIN],
MIN(o.Time) [TimeOUT]
FROM ( SELECT *
FROM Timetable
WHERE Status = 'IN'
) i
FULL OUTER JOIN
( SELECT *
FROM Timetable
WHERE Status = 'OUT'
) o
ON o.Name = i.Name
AND o.Time > i.Time
GROUP BY COALESCE(i.Name, o.Name), i.Time
ORDER BY Name, TimeIN