回答編集履歴

2

簡単なの思いついたので変えました

2018/10/21 05:50

投稿

退会済みユーザー
test CHANGED
@@ -1,35 +1,9 @@
1
- 要は、2テーブルの担当者コード、削除フラグを絞り込みの条件として、マスタ情報を抽出するのですよね。
2
-
3
-
4
-
5
- なので、2テーブルの担当者コードをキーに削除フラグを集計して、絞り込み条件が得られるようなSQLを書きます。それを、マスタの抽出の絞り込み条件とすればよいです。
6
-
7
-
8
-
9
1
  ```sql
10
2
 
11
- select * from TRANS_TBL as D
3
+ select * from TRANS_TBL as A
12
4
 
13
- where D.'担当者コード' in (
5
+ where A.'担当者コード' not in (select B.'担当者コード' from TRANS_TBL as B where B.'削除フラグ' = 1)
14
6
 
15
- select C.'担当者コード' from
16
-
17
- (
18
-
19
- select A.'担当者コード', A.'削除フラグ' from TRANS_TBL as A
20
-
21
- union
22
-
23
- select B.'担当者コード', B.'削除フラグ' from APPLI_TRANS_TBL as B
7
+ and A.'担当者コード' not in (select C.'担当者コード' from APPLI_TRANS_TBL as C where C.'削除フラグ' = 1)
24
-
25
- ) as C
26
-
27
- group by C.'担当者コード'
28
-
29
- having sum(C.'削除フラグ') = 0
30
-
31
- )
32
-
33
-
34
8
 
35
9
  ```

1

sqlを追記しました。

2018/10/21 05:50

投稿

退会済みユーザー
test CHANGED
@@ -3,3 +3,33 @@
3
3
 
4
4
 
5
5
  なので、2テーブルの担当者コードをキーに削除フラグを集計して、絞り込み条件が得られるようなSQLを書きます。それを、マスタの抽出の絞り込み条件とすればよいです。
6
+
7
+
8
+
9
+ ```sql
10
+
11
+ select * from TRANS_TBL as D
12
+
13
+ where D.'担当者コード' in (
14
+
15
+ select C.'担当者コード' from
16
+
17
+ (
18
+
19
+ select A.'担当者コード', A.'削除フラグ' from TRANS_TBL as A
20
+
21
+ union
22
+
23
+ select B.'担当者コード', B.'削除フラグ' from APPLI_TRANS_TBL as B
24
+
25
+ ) as C
26
+
27
+ group by C.'担当者コード'
28
+
29
+ having sum(C.'削除フラグ') = 0
30
+
31
+ )
32
+
33
+
34
+
35
+ ```