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

Dapatkan tanggal terbaru sebelum nilai tanggal berturut-turut

Anda dapat menggunakan BERLAKU LUAR . Ini seperti subquery yang berkorelasi tetapi memungkinkan beberapa kolom:

SELECT  p.ID, 
        p.Patient,
        p.ProcedureType,
        p.ProcedureDate,
        [LastExamDate] = exam.ProcedureDate, 
        [DaysSinceLastExam] = DATEDIFF(DAY, exam.ProcedureDate, p.ProcedureDate),
        [LastExamType] = exam.ProcedureType 
FROM    Procedures p
        OUTER APPLY
        (   SELECT  TOP 1 exams.ProcedureType, exams.ProcedureDate
            FROM    Procedures exams
            WHERE   Exams.ProcedureType LIKE '%Exam%'
            AND     Exams.Patient = p.Patient
            AND     Exams.ProcedureDate <= p.ProcedureDate
            ORDER BY Exams.ProcedureDate DESC
        ) exam;

Contoh Pada SQL Fiddle



  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 mendapatkan offset zona waktu dari nama zona waktu

  2. Membuat kunci utama komposit di SQL Server

  3. Cara Memperbaiki "nama profil tidak valid" Saat Memperbarui Profil Email Database di SQL Server (T-SQL)

  4. 5 Cara Menghitung Jumlah Tabel Buatan Pengguna dalam Database SQL Server

  5. Memperkenalkan Ekspresi Tabel Umum di SQL Server