Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Scalanie nieużywanych przedziałów czasowych

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)

Nie jestem pewien, czy StaffID i BranchID mogą się różnić w tabeli @results, więc może być konieczne dostosowanie tego, jeśli to możliwe.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyzwalacz SQL Server:zrozumienie i alternatywy

  2. Przenieś dane z jednej bazy danych do innej bazy danych

  3. Aktualizuj tylko część daty daty i godziny

  4. SQL Pokaż wszystkie przedmioty, które są wynajmowane przed określoną datą i do określonej daty

  5. IsNumeric w SQL Server DOŁĄCZ