質問するログイン新規登録

回答編集履歴

2

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

2018/10/21 05:50

投稿

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

1

sqlを追記しました。

2018/10/21 05:50

投稿

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