Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

SQL Query untuk interval waktu. Kesalahan sintaks.

Anda tidak dapat menggunakan JOIN seperti itu, Anda harus menggunakan CROSS APPLY atau OUTER APPLY (dengan asumsi SQL Server). Juga, tolong tambahkan panjang ke varchars. Sekarang, coba ini:

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;

Ini demonya untuk Anda coba.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengaktifkan SQL Server Agent XPs menggunakan T-SQL

  2. Masalah protokol komunikasi SQL Server

  3. Cara Membuat Daftar Fitur Usang dalam Instance SQL Server menggunakan T-SQL

  4. SQL Server 2008 GEOGRAFI STDistance() nilai

  5. Bagaimana cara menghapus tag HTML dari string di SQL Server?