sql >> Database teknologi >  >> RDS >> Sqlserver

SQL-forespørgsel til tidsintervaller. Syntaksfejl.

Du kan ikke bruge JOIN sådan skal du bruge enten CROSS APPLY eller OUTER APPLY (forudsat SQL Server). Tilføj også længde til varchars. Prøv nu dette:

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;

Her er en demo for dig at prøve.



  1. MacOSX homebrew mysql root adgangskode

  2. Skift MySQL-driveren, der bruges af Joomla

  3. Regneark vs. databaser:Er det tid til at skifte? Del 1

  4. Hvordan kan jeg teste, om der findes en kolonne i en tabel ved hjælp af en SQL-sætning