回答編集履歴
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中にある異動前情報をテーブル作成クエリーで作成するとか、インデックスの見直しを行って下さい。
|