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

Bagaimana saya bisa membuat kueri ini di SQL Server Compact Edition?

Ada kasus ketika Anda tidak dapat menghindari subkueri, misalnya jika Anda harus menyertakan kolom terhitung yang menggunakan data dari baris saat ini dan sebelumnya. Pertimbangkan kueri ini, misalnya:

SELECT     
     (Current.Mileage - Last.Mileage)/Quantity as MPG
FROM         
     GasPurchases AS Current
     LEFT OUTER JOIN GasPurchases AS Last
     ON Last.Date =
        (SELECT MAX(PurchaseDate)
        FROM GasPurchases
        WHERE PurchaseDate < Current.PurchaseDate)

Ini akan menyebabkan kesalahan penguraian:

Saya menemukan utas ini pada MSDN yang memiliki solusi. Dengan mengubah subkueri sehingga mengembalikan satu set alih-alih nilai skalar, saya dapat menyimpan dan menjalankan kueri berikut.

SELECT     
     (Current.Mileage - Last.Mileage)/Quantity as MPG
FROM         
     GasPurchases AS Current
     LEFT OUTER JOIN GasPurchases AS Last
     ON Last.Date IN
        (SELECT MAX(PurchaseDate)
        FROM GasPurchases
        WHERE PurchaseDate < Current.PurchaseDate)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kunci baris - menggunakannya secara manual

  2. Bagaimana cara mendapatkan nilai parameter untuk kueri SQL Server di SQL Server Profiler

  3. Bagaimana saya bisa mengganti semua bidang kunci dalam string dengan nilai pengganti dari tabel di T-SQL?

  4. SQL Server:GROUP BY dua tingkat dengan keluaran XML

  5. Memahami Alias ​​Kolom di Select Query di SQL Server - Tutorial SQL Server / TSQL Bagian 115