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

Menggabungkan slot waktu yang tidak digunakan

select 
    StaffId,
    BranchId,
    MIN(StartTime),
    MAX(EndTime),
    PatientId
from
(
select *,       
    ROW_NUMBER() over (order by starttime) 
      - ROW_NUMBER() over (partition by isnull(PatientID,-1) order by starttime) rn     
from @results
) v
group by staffid, branchid, patientid, rn
order by MIN (starttime)

Saya tidak yakin apakah StaffID dan BranchID dapat bervariasi di tabel @results, jadi Anda mungkin perlu mengubah ini jika bisa.



  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 memformat kolom numerik sebagai nomor telepon di SQL

  2. Cara Membuat Pernyataan Kolom Tambah untuk semua tabel dalam Database di SQL Server - Tutorial SQL Server / T-SQL Part 49

  3. Cara menonaktifkan semua Batasan Periksa di Database SQL Server - Tutorial SQL Server / TSQL Bagian 87

  4. SQL:Tampilan dinamis dengan nama kolom berdasarkan nilai kolom di tabel sumber

  5. T-SQL:Berlawanan dengan penggabungan string - cara membagi string menjadi beberapa record