sql >> Database >  >> RDS >> Sqlserver

Ongebruikte tijdsloten samenvoegen

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)

Ik weet niet zeker of StaffID en BranchID kunnen verschillen in de @results-tabel, dus het kan zijn dat je dit moet aanpassen als dat kan.



  1. Count(*) vs Count(Id) in sql server 2005

  2. Hoe varchar alleen naar datum te converteren als het een geldige datum bevat?

  3. MySQL - Converteer een dubbele waarde naar een unieke waarde met een incrementele aaneenschakeling

  4. Postgresql externe toegang geen pg_hba.conf-invoer voor host