回答編集履歴
7
追記
    
        answer	
    CHANGED
    
    | @@ -39,6 +39,23 @@ | |
| 39 39 | 
             
            where 基準.担当CD='01'
         | 
| 40 40 | 
             
            order by ta.担当CD, ta.出勤日 desc
         | 
| 41 41 | 
             
            ```
         | 
| 42 | 
            +
            サブクエリーを使用するとこんな感じ。
         | 
| 43 | 
            +
            ```SQL
         | 
| 44 | 
            +
            select ta.*, tb.*
         | 
| 45 | 
            +
            from ((
         | 
| 46 | 
            +
                  select ta.担当CD, ta.出勤日
         | 
| 47 | 
            +
                       , (select Max(売上日付) from テーブルB where 担当CD = ta.担当CD and 売上日付 <= ta.出勤日) as 売上日付
         | 
| 48 | 
            +
                  from テーブルA as ta
         | 
| 49 | 
            +
                ) as 基準
         | 
| 50 | 
            +
                inner join テーブルA as ta
         | 
| 51 | 
            +
                on    基準.担当CD=ta.担当CD
         | 
| 52 | 
            +
                  and 基準.出勤日=ta.出勤日
         | 
| 53 | 
            +
                ) left join テーブルB as tb
         | 
| 54 | 
            +
                on    基準.担当CD=tb.担当CD
         | 
| 55 | 
            +
                  and 基準.売上日付=tb.売上日付
         | 
| 56 | 
            +
            where 基準.担当CD='01'
         | 
| 57 | 
            +
            order by ta.担当CD, ta.出勤日 desc
         | 
| 58 | 
            +
            ```
         | 
| 42 59 | 
             
            #追記2
         | 
| 43 60 | 
             
            出勤日と前の出勤日の間の売上日付の場合は以下
         | 
| 44 61 | 
             
            ```SQL
         | 
6
追記
    
        answer	
    CHANGED
    
    | @@ -38,4 +38,22 @@ | |
| 38 38 | 
             
                  and 基準.売上日付=tb.売上日付
         | 
| 39 39 | 
             
            where 基準.担当CD='01'
         | 
| 40 40 | 
             
            order by ta.担当CD, ta.出勤日 desc
         | 
| 41 | 
            +
            ```
         | 
| 42 | 
            +
            #追記2
         | 
| 43 | 
            +
            出勤日と前の出勤日の間の売上日付の場合は以下
         | 
| 44 | 
            +
            ```SQL
         | 
| 45 | 
            +
            select ta.*, tb.*
         | 
| 46 | 
            +
            from ((
         | 
| 47 | 
            +
                  select ta.担当CD, ta.出勤日
         | 
| 48 | 
            +
                       , DMax("出勤日", "テーブルA", "担当CD='" & 担当CD & "' and 出勤日 <= #" & 出勤日 & "#") as 前出勤日
         | 
| 49 | 
            +
                  from テーブルA as ta
         | 
| 50 | 
            +
                ) as 基準
         | 
| 51 | 
            +
                inner join テーブルA as ta
         | 
| 52 | 
            +
                on    基準.担当CD=ta.担当CD
         | 
| 53 | 
            +
                  and 基準.出勤日=ta.出勤日
         | 
| 54 | 
            +
                ) left join テーブルB as tb
         | 
| 55 | 
            +
                on    基準.担当CD=tb.担当CD
         | 
| 56 | 
            +
                  and 基準.出勤日 >= tb.売上日付 and 基準.前出勤日 < tb.売上日付
         | 
| 57 | 
            +
            where 基準.担当CD='01'
         | 
| 58 | 
            +
            order by ta.担当CD, ta.出勤日 desc
         | 
| 41 59 | 
             
            ```
         | 
5
修正
    
        answer	
    CHANGED
    
    | @@ -27,7 +27,7 @@ | |
| 27 27 | 
             
            select ta.*, tb.*
         | 
| 28 28 | 
             
            from ((
         | 
| 29 29 | 
             
                  select ta.担当CD, ta.出勤日
         | 
| 30 | 
            -
                       , DMax("売上日付", "テーブルB", "担当CD='" & 担当CD & "' and  | 
| 30 | 
            +
                       , DMax("売上日付", "テーブルB", "担当CD='" & 担当CD & "' and 売上日付 <= #" & 出勤日 & "#") as 売上日付
         | 
| 31 31 | 
             
                  from テーブルA as ta
         | 
| 32 32 | 
             
                ) as 基準
         | 
| 33 33 | 
             
                inner join テーブルA as ta
         | 
4
追記
    
        answer	
    CHANGED
    
    | @@ -20,4 +20,22 @@ | |
| 20 20 | 
             
                  and 基準.売上日付=tb.売上日付
         | 
| 21 21 | 
             
            where 基準.担当CD='01'
         | 
| 22 22 | 
             
            order by ta.担当CD, ta.出勤日 desc
         | 
| 23 | 
            +
            ```
         | 
| 24 | 
            +
            # 追記
         | 
| 25 | 
            +
            出勤日以降の売上日付は関係ないという事だと以下の様な感じ
         | 
| 26 | 
            +
            ```SQL
         | 
| 27 | 
            +
            select ta.*, tb.*
         | 
| 28 | 
            +
            from ((
         | 
| 29 | 
            +
                  select ta.担当CD, ta.出勤日
         | 
| 30 | 
            +
                       , DMax("売上日付", "テーブルB", "担当CD='" & 担当CD & "' and ta.売上日付 <= #" & 出勤日 & "#") as 売上日付
         | 
| 31 | 
            +
                  from テーブルA as ta
         | 
| 32 | 
            +
                ) as 基準
         | 
| 33 | 
            +
                inner join テーブルA as ta
         | 
| 34 | 
            +
                on    基準.担当CD=ta.担当CD
         | 
| 35 | 
            +
                  and 基準.出勤日=ta.出勤日
         | 
| 36 | 
            +
                ) left join テーブルB as tb
         | 
| 37 | 
            +
                on    基準.担当CD=tb.担当CD
         | 
| 38 | 
            +
                  and 基準.売上日付=tb.売上日付
         | 
| 39 | 
            +
            where 基準.担当CD='01'
         | 
| 40 | 
            +
            order by ta.担当CD, ta.出勤日 desc
         | 
| 23 41 | 
             
            ```
         | 
3
修正
    
        answer	
    CHANGED
    
    | @@ -9,13 +9,13 @@ | |
| 9 9 | 
             
                        select ta.担当CD, ta.出勤日
         | 
| 10 10 | 
             
                             , DMax("売上日付", "テーブルB", "担当CD='" & 担当CD & "' and 売上日付 <= #" & 出勤日 & "#") as 以前直近売上日
         | 
| 11 11 | 
             
                             , DMin("売上日付", "テーブルB", "担当CD='" & 担当CD & "' and 売上日付 >= #" & 出勤日 & "#") as 以降直近売上日
         | 
| 12 | 
            -
                        from テーブルA ta
         | 
| 12 | 
            +
                        from テーブルA as ta
         | 
| 13 13 | 
             
                     ) as t
         | 
| 14 14 | 
             
                ) as 基準
         | 
| 15 | 
            -
                inner join テーブルA ta
         | 
| 15 | 
            +
                inner join テーブルA as ta
         | 
| 16 16 | 
             
                on    基準.担当CD=ta.担当CD
         | 
| 17 17 | 
             
                  and 基準.出勤日=ta.出勤日
         | 
| 18 | 
            -
                ) left join テーブルB tb
         | 
| 18 | 
            +
                ) left join テーブルB as tb
         | 
| 19 19 | 
             
                on    基準.担当CD=tb.担当CD
         | 
| 20 20 | 
             
                  and 基準.売上日付=tb.売上日付
         | 
| 21 21 | 
             
            where 基準.担当CD='01'
         | 
2
修正
    
        answer	
    CHANGED
    
    | @@ -10,7 +10,7 @@ | |
| 10 10 | 
             
                             , DMax("売上日付", "テーブルB", "担当CD='" & 担当CD & "' and 売上日付 <= #" & 出勤日 & "#") as 以前直近売上日
         | 
| 11 11 | 
             
                             , DMin("売上日付", "テーブルB", "担当CD='" & 担当CD & "' and 売上日付 >= #" & 出勤日 & "#") as 以降直近売上日
         | 
| 12 12 | 
             
                        from テーブルA ta
         | 
| 13 | 
            -
                     ) t
         | 
| 13 | 
            +
                     ) as t
         | 
| 14 14 | 
             
                ) as 基準
         | 
| 15 15 | 
             
                inner join テーブルA ta
         | 
| 16 16 | 
             
                on    基準.担当CD=ta.担当CD
         | 
1
修正
    
        answer	
    CHANGED
    
    | @@ -10,6 +10,7 @@ | |
| 10 10 | 
             
                             , DMax("売上日付", "テーブルB", "担当CD='" & 担当CD & "' and 売上日付 <= #" & 出勤日 & "#") as 以前直近売上日
         | 
| 11 11 | 
             
                             , DMin("売上日付", "テーブルB", "担当CD='" & 担当CD & "' and 売上日付 >= #" & 出勤日 & "#") as 以降直近売上日
         | 
| 12 12 | 
             
                        from テーブルA ta
         | 
| 13 | 
            +
                     ) t
         | 
| 13 14 | 
             
                ) as 基準
         | 
| 14 15 | 
             
                inner join テーブルA ta
         | 
| 15 16 | 
             
                on    基準.担当CD=ta.担当CD
         | 
