回答編集履歴
4
推敲
    
        answer	
    CHANGED
    
    | @@ -4,7 +4,7 @@ | |
| 4 4 | 
             
            元にするテーブルを「異動」テーブルとすると、
         | 
| 5 5 | 
             
            select 異動基準.*, 異動前.異動部署
         | 
| 6 6 | 
             
            from (
         | 
| 7 | 
            -
                    select  | 
| 7 | 
            +
                    select *
         | 
| 8 8 | 
             
                         ,(select max(発令日) 
         | 
| 9 9 | 
             
                           from 異動 as 異動前 
         | 
| 10 10 | 
             
                           where 異動前.社員番号=異動.社員番号 
         | 
3
推敲
    
        answer	
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            元にするテーブルを「異動」テーブルとすると、以下のようなSQLで取り出す事が出来ます。
         | 
| 3 3 | 
             
            ```SQL
         | 
| 4 4 | 
             
            元にするテーブルを「異動」テーブルとすると、
         | 
| 5 | 
            -
            select 異動.*, 異動前.異動部署
         | 
| 5 | 
            +
            select 異動基準.*, 異動前.異動部署
         | 
| 6 6 | 
             
            from (
         | 
| 7 7 | 
             
                    select 社員番号, 発令日
         | 
| 8 8 | 
             
                         ,(select max(発令日) 
         | 
| @@ -11,9 +11,9 @@ | |
| 11 11 | 
             
                             and 異動前.発令日<異動.発令日
         | 
| 12 12 | 
             
                          ) as 異動前発令日
         | 
| 13 13 | 
             
                    from 異動
         | 
| 14 | 
            -
                 ) 異動
         | 
| 14 | 
            +
                 ) as 異動基準
         | 
| 15 15 | 
             
                 left join 異動 as 異動前
         | 
| 16 | 
            -
                 on  異動.社員番号=異動前.社員番号 and 異動.異動前発令日=異動前.発令日
         | 
| 16 | 
            +
                 on  異動基準.社員番号=異動前.社員番号 and 異動基準.異動前発令日=異動前.発令日
         | 
| 17 17 |  | 
| 18 18 | 
             
            ```
         | 
| 19 19 | 
             
            時間が掛かるようなら、SQL中にある異動前発令日をテーブル作成クエリーで作成するとか、インデックスの見直しを行って下さい。
         | 
2
冗長だったので訂正
    
        answer	
    CHANGED
    
    | @@ -1,8 +1,9 @@ | |
| 1 1 | 
             
            自己結合する訳なので、それぞれの情報を繋ぐ情報を作り出す必要があります。
         | 
| 2 2 | 
             
            元にするテーブルを「異動」テーブルとすると、以下のようなSQLで取り出す事が出来ます。
         | 
| 3 3 | 
             
            ```SQL
         | 
| 4 | 
            +
            元にするテーブルを「異動」テーブルとすると、
         | 
| 4 | 
            -
            select 異動.*, 異動前. | 
| 5 | 
            +
            select 異動.*, 異動前.異動部署
         | 
| 5 | 
            -
            from  | 
| 6 | 
            +
            from (
         | 
| 6 7 | 
             
                    select 社員番号, 発令日
         | 
| 7 8 | 
             
                         ,(select max(発令日) 
         | 
| 8 9 | 
             
                           from 異動 as 異動前 
         | 
| @@ -10,9 +11,9 @@ | |
| 10 11 | 
             
                             and 異動前.発令日<異動.発令日
         | 
| 11 12 | 
             
                          ) as 異動前発令日
         | 
| 12 13 | 
             
                    from 異動
         | 
| 13 | 
            -
                 )  | 
| 14 | 
            +
                 ) 異動
         | 
| 14 | 
            -
                 on  異動.社員番号=異動前情報.社員番号 and 異動.発令日=異動前情報.発令日
         | 
| 15 15 | 
             
                 left join 異動 as 異動前
         | 
| 16 | 
            -
                 on  異動 | 
| 16 | 
            +
                 on  異動.社員番号=異動前.社員番号 and 異動.異動前発令日=異動前.発令日
         | 
| 17 | 
            +
                 
         | 
| 17 18 | 
             
            ```
         | 
| 18 | 
            -
            時間が掛かるようなら、SQL中にある異動前 | 
| 19 | 
            +
            時間が掛かるようなら、SQL中にある異動前発令日をテーブル作成クエリーで作成するとか、インデックスの見直しを行って下さい。
         | 
1
推敲
    
        answer	
    CHANGED
    
    | @@ -15,4 +15,4 @@ | |
| 15 15 | 
             
                 left join 異動 as 異動前
         | 
| 16 16 | 
             
                 on  異動前情報.社員番号=異動前.社員番号 and 異動前情報.異動前発令日=異動前.発令日
         | 
| 17 17 | 
             
            ```
         | 
| 18 | 
            -
            時間が掛かるようなら、SQL中にある異動前情報をテーブル作成クエリーで作成する | 
| 18 | 
            +
            時間が掛かるようなら、SQL中にある異動前情報をテーブル作成クエリーで作成するとか、インデックスの見直しを行って下さい。
         | 
