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

行の日付値より前の最新の日付を取得します

    OUTERAPPLY を使用できます。 。相関サブクエリに似ていますが、複数の列を使用できます:

    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;
    

    SQLフィドルの例



    1. 数値が整数の場合にto_charのドットを削除する方法

    2. MySQL全文ブールモード検索はあまりにも多くの結果を返します

    3. MySQL複数は大文字と小文字を区別して1つのクエリでカウントします

    4. Magentoの特別価格を保持しているテーブルはどこにありますか?