sql >> データベース >  >> RDS >> Sqlserver

未使用のタイムスロットのマージ

    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)
    

    @results テーブルで StaffID と BranchID が異なる可能性があるかどうかはわかりません。可能であれば、これを微調整する必要があるかもしれません。



    1. タグ付けのためのmysqlのネストされた挿入

    2. MYSQL、PHPはデータベースの複数のテーブルに挿入します

    3. キャッチされないエラー:未定義の関数mysql_connect()の呼び出し

    4. クエリ内の最新のレコードを取得する