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

Memasukkan dan mengubah data dari tabel SQL

Tidak perlu WHILE lingkaran.

SELECT
    date,
    id,
    SUM(CASE WHEN status_id = 1 THEN status_time ELSE 0 END) AS lunch,
    SUM(CASE WHEN status_id = 2 THEN status_time ELSE 0 END) AS break,
    SUM(CASE WHEN status_id = 3 THEN status_time ELSE 0 END) AS vacation
FROM
    My_Table
GROUP BY
    date,
    id

Juga, menjaga status_time dalam tabel adalah kesalahan (kecuali itu adalah kolom terhitung yang tidak persisten). Anda secara efektif menyimpan data yang sama di dua tempat dalam database, yang pada akhirnya akan menghasilkan inkonsistensi. Hal yang sama berlaku untuk mendorong data ini ke tabel lain dengan waktu yang dibagi berdasarkan tipe status. Jangan membuat tabel baru untuk menyimpan data, gunakan kueri untuk mendapatkan data saat Anda membutuhkannya.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak dapat menulis data ke transport. Vs2017 ASP.net core Scaffolding (MSSQL WINDOW 10)

  2. Batasan PERIKSA bersyarat SQL Server

  3. Apa perbedaan antara char, nchar, varchar, dan nvarchar di SQL Server?

  4. OPENROWSET BULK Izin ke Folder Bersama

  5. Buat Hubungan di SQL Server 2017