質問編集履歴

5

2021/06/10 23:33

投稿

wawawa3120
wawawa3120

スコア5

test CHANGED
File without changes
test CHANGED
@@ -5,6 +5,8 @@
5
5
  複数のテーブルを内部結合する際に、結合条件を、条件によって使用するか判定したいです。
6
6
 
7
7
  inner joinのonの中で、case文を使用し、結合条件を使用する条件を分けることは可能でしょうか。
8
+
9
+ また、case文でexitsを使うときのselect文の条件につきまして、発生している問題に記載しました。
8
10
 
9
11
 
10
12
 
@@ -122,19 +124,43 @@
122
124
 
123
125
 
124
126
 
125
- 下記SELECT文て何も取得できません
127
+ on以を下記に変更することで取得できました
126
128
 
127
-
128
-
129
- **(6月11日追記)on以下を下記に変更することで取得できました。
130
-
131
- しかし「--必要?」の箇所を記載してもしなくても、結果が変わりませんでした。
129
+ しかし「--必要?」の箇所を>記載してもしなくても、結果が変わりませんでした。
132
130
 
133
131
  代表者名(daihyo)も結合条件に入れたい場合、「case when exists」内に記載が必要かご教示ください。**
134
132
 
135
133
  ```ここに言語を入力
136
134
 
135
+
136
+
137
+ ```
138
+
139
+
140
+
141
+
142
+
143
+ ### 該当のソースコード
144
+
145
+
146
+
147
+ ```Postgres
148
+
149
+ select meisai_m.meisaino, --明細No
150
+
151
+ meisai_m.soshiki, --組織
152
+
153
+ meisai_m.tiiki, --地域
154
+
155
+ meisai_m.daihyo, --代表者
156
+
157
+ soshiki_m.dairiten --代理店
158
+
159
+ from meisai_mst meisai_m
160
+
161
+ inner join soshiki_mst soshiki_m
162
+
137
- on
163
+   on
138
164
 
139
165
  (
140
166
 
@@ -168,62 +194,6 @@
168
194
 
169
195
  )
170
196
 
171
- and meisai_m.daihyo = soshiki_m.daihyo;
197
+ and meisai_m.daihyo = soshiki_m.daihyo;
172
198
 
173
199
  ```
174
-
175
-
176
-
177
-
178
-
179
- ### 該当のソースコード
180
-
181
-
182
-
183
- ```Postgres
184
-
185
- select meisai_m.meisaino, --明細No
186
-
187
- meisai_m.soshiki, --組織
188
-
189
- meisai_m.tiiki, --地域
190
-
191
- meisai_m.daihyo, --代表者
192
-
193
- soshiki_m.dairiten --代理店
194
-
195
- from meisai_mst meisai_m
196
-
197
- inner join soshiki_mst soshiki_m
198
-
199
- on meisai_m.tiiki =
200
-
201
- (
202
-
203
- (case when exists (select 1
204
-
205
- from soshiki_mst soshiki_m
206
-
207
- where soshiki_m.tiiki = meisai_m.tiiki)
208
-
209
- then soshiki_m.tiiki
210
-
211
- end) --地域
212
-
213
- or meisai_m.soshiki =
214
-
215
- (case when exists (select 1
216
-
217
- from soshiki_mst soshiki_m
218
-
219
- where soshiki_m.soshiki = meisai_m.soshiki)
220
-
221
- then soshiki_m.soshiki
222
-
223
- end) --組織
224
-
225
- )
226
-
227
- and meisai_m.daihyo = soshiki_m.daihyo;
228
-
229
- ```

4

自己解決疑惑

2021/06/10 23:33

投稿

wawawa3120
wawawa3120

スコア5

test CHANGED
File without changes
test CHANGED
@@ -126,6 +126,56 @@
126
126
 
127
127
 
128
128
 
129
+ **(6月11日追記)on以下を下記に変更することで取得できました。
130
+
131
+ しかし「--必要?」の箇所を記載してもしなくても、結果が変わりませんでした。
132
+
133
+ 代表者名(daihyo)も結合条件に入れたい場合、「case when exists」内に記載が必要かご教示ください。**
134
+
135
+ ```ここに言語を入力
136
+
137
+ on
138
+
139
+ (
140
+
141
+ meisai_m.tiiki =
142
+
143
+ (case when exists (select 1 from soshiki_mst soshiki_m
144
+
145
+ where soshiki_m.tiiki = meisai_m.tiiki
146
+
147
+ and meisai_m.daihyo = soshiki_m.daihyo --必要?
148
+
149
+ )
150
+
151
+ then soshiki_m.tiiki
152
+
153
+ end) --地域
154
+
155
+ or meisai_m.soshiki =
156
+
157
+ (case when exists ( select 1 from soshiki_mst soshiki_m
158
+
159
+ where soshiki_m.soshiki = meisai_m.soshiki
160
+
161
+ and meisai_m.daihyo = soshiki_m.daihyo --必要?
162
+
163
+ )
164
+
165
+ then soshiki_m.soshiki
166
+
167
+ end) --組織
168
+
169
+ )
170
+
171
+ and meisai_m.daihyo = soshiki_m.daihyo;
172
+
173
+ ```
174
+
175
+
176
+
177
+
178
+
129
179
  ### 該当のソースコード
130
180
 
131
181
 

3

誤字

2021/06/10 15:43

投稿

wawawa3120
wawawa3120

スコア5

test CHANGED
File without changes
test CHANGED
@@ -132,7 +132,7 @@
132
132
 
133
133
  ```Postgres
134
134
 
135
- select meisai_m.meisaino --明細No
135
+ select meisai_m.meisaino, --明細No
136
136
 
137
137
  meisai_m.soshiki, --組織
138
138
 

2

内容の修正

2021/06/10 15:11

投稿

wawawa3120
wawawa3120

スコア5

test CHANGED
File without changes
test CHANGED
@@ -41,6 +41,54 @@
41
41
  1|10|1|山田花子|AAA
42
42
 
43
43
  2|10|1|山田花子|BBB
44
+
45
+
46
+
47
+ create table meisai_mst
48
+
49
+ (
50
+
51
+ meisaino CHARACTER(255),
52
+
53
+ nyukinbi date,
54
+
55
+ soshiki CHARACTER(255),
56
+
57
+ tiiki CHARACTER(255),
58
+
59
+ daihyo CHARACTER(255)
60
+
61
+ );
62
+
63
+
64
+
65
+ create table soshiki_mst
66
+
67
+ (
68
+
69
+ hojinno CHARACTER(255),
70
+
71
+ soshiki CHARACTER(255),
72
+
73
+ tiiki CHARACTER(255),
74
+
75
+ daihyo CHARACTER(255),
76
+
77
+ dairiten CHARACTER(255)
78
+
79
+ )
80
+
81
+
82
+
83
+ INSERT INTO meisai_mst values('1',cast('2020/12/30'as date),'10',null,'山田花子');
84
+
85
+ INSERT INTO meisai_mst values('2',cast('2020/12/30'as date),'10','1','山田花子');
86
+
87
+ INSERT INTO soshiki_mst values('1','10','1','山田花子','AA');
88
+
89
+ INSERT INTO soshiki_mst values('2','10','1','山田花子','BB');
90
+
91
+
44
92
 
45
93
 
46
94
 

1

誤字

2021/06/10 15:09

投稿

wawawa3120
wawawa3120

スコア5

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  結合の条件は、
14
14
 
15
- (1)地域][組織]の順で、値を取得できた条件を使用します。
15
+ (1)[地域][組織]の順で、値を取得できた条件を使用します。
16
16
 
17
17
  (2)代表者で結合します。
18
18