JOIN
は使用できません そのように、あなたはどちらかのCROSS APPLY
を使う必要があります またはOUTER APPLY
(SQL Serverを想定)。また、varcharsに長さを追加してください。今、これを試してください:
SELECT r.user_id, r.reading_time start_time, rm.reading_time end_time,
(CONVERT(varchar(10), r.x)+' ; '+CONVERT(varchar(10), r.y)) start_point,
(CONVERT(varchar(10), rm.x)+' ; '+CONVERT(varchar(10), rm.y)) end_point
FROM Readings r
OUTER APPLY (SELECT TOP 1 r2.user_id, r2.reading_time, r2.x, r2.y
FROM Readings r2
WHERE r2.user_id=r.user_id and
r2.reading_time < r.reading_time
ORDER BY r2.reading_time desc) rm
ORDER BY 1,2 desc;
これがデモです 試してみてください。