sql >> Databáze >  >> RDS >> Sqlserver

Získejte poslední datum před hodnotou data v řádku

Můžete použít VNĚJŠÍ POUŽITÍ . Je to jako korelovaný poddotaz, ale umožňuje více sloupců:

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;

Příklad na SQL Fiddle



  1. Vytvořte prostorový sloupec MySQL – datový typ bodu s lat long bez použití Alter tabulky

  2. Jak se dotazovat na role aktuálního uživatele

  3. Python:MySQLdb a knihovna nejsou načteny:libmysqlclient.16.dylib

  4. SQL Server Textový datový typ Maximální délka =65 535?