質問編集履歴

3

語彙

2019/06/06 01:03

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -62,6 +62,6 @@
62
62
 
63
63
 
64
64
 
65
- 以上、ご教お願い致します。
65
+ 以上、ご教お願い致します。
66
66
 
67
67
  追記しましたのでよろしくお願い致します。

2

質問の表記がばらばらであった為、修正

2019/06/06 01:03

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,6 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- 以下のようなテーブルでcon1=1 かつ con2=1であのをid=1のtimeの値加算し
3
+ 以下のようなテーブルで下記に表示す条件select文作成したい考えております。
4
-
5
- 表示させたいと考えております。
6
-
7
-
8
-
9
-
10
4
 
11
5
  sample1
12
6
 
@@ -34,19 +28,15 @@
34
28
 
35
29
  上記のような表で
36
30
 
37
- 条件に当てはまったものを
38
-
39
-
40
-
41
-
42
-
43
- 以下のresultの列のように表示したいです。
31
+ 条件に当てはまったものを以下のresultの列のように表示したいです。
44
32
 
45
33
  con1 = 1 & con2=1 → a行のresultにaのtimeの値とそのほか条件に合致する値を加算し表示
46
34
 
47
35
  con1 = 0 & con2=1 → b行のresultにbのtimeの値とそのほか条件に合致する値を加算し表示
48
36
 
49
37
  con1 = 0 & con2=0 → c行のresultにcのtimeの値とそのほか条件に合致する値を加算し表示
38
+
39
+ 以下が結果のテーブルとなります。
50
40
 
51
41
  |id|class|time|con1|con2|result|
52
42
 
@@ -56,34 +46,22 @@
56
46
 
57
47
  |2|aa|20|1|1||
58
48
 
59
- |3|b|10|null|null||
49
+ |3|b|10|null|null|30|
60
50
 
61
51
  |4|ba|20|0|1||
62
52
 
63
- |5|c|10|null|null||
53
+ |5|c|10|null|null|15|
64
54
 
65
- |6|ca|10|0|0||
55
+ |6|ca|5|0|0||
66
56
 
67
57
  |6|da|10|1|1||
68
58
 
69
59
 
70
60
 
71
- また、
72
61
 
73
-
74
-
75
- ### 試したこと
76
-
77
- 以下のようなSQL文を流しましたがうまくいかなかったので良い方法があれば宜しくお願い致します。
78
-
79
- ``` PL/SQL
80
-
81
- ```
82
62
 
83
63
 
84
64
 
85
65
  以上、ご教授お願い致します。
86
66
 
87
-
88
-
89
67
  追記しましたのでよろしくお願い致します。

1

質問の意図が違ったため

2019/06/06 00:45

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -14,17 +14,61 @@
14
14
 
15
15
  |:--|:--:|--:|
16
16
 
17
- |1|a|10|1|1|
17
+ |1|a|10|null|null|
18
18
 
19
- |2|ab|20|1|1|
19
+ |2|aa|20|1|1|
20
20
 
21
+ |3|b|10|null|null|
22
+
23
+ |4|ba|20|0|1|
24
+
25
+ |5|c|10|null|null|
26
+
21
- |3|c|10|1|0|
27
+ |6|ca|10|0|0|
28
+
29
+ |6|da|10|1|1|
30
+
31
+
32
+
33
+ ### やりたいことと質問が異なっていたので追記させていただきます。
34
+
35
+ 上記のような表で
36
+
37
+ 条件に当てはまったものを
22
38
 
23
39
 
24
40
 
25
41
 
26
42
 
43
+ 以下のresultの列のように表示したいです。
27
44
 
45
+ con1 = 1 & con2=1 → a行のresultにaのtimeの値とそのほか条件に合致する値を加算し表示
46
+
47
+ con1 = 0 & con2=1 → b行のresultにbのtimeの値とそのほか条件に合致する値を加算し表示
48
+
49
+ con1 = 0 & con2=0 → c行のresultにcのtimeの値とそのほか条件に合致する値を加算し表示
50
+
51
+ |id|class|time|con1|con2|result|
52
+
53
+ |:--|:--:|--:|
54
+
55
+ |1|a|10|null|null|40|
56
+
57
+ |2|aa|20|1|1||
58
+
59
+ |3|b|10|null|null||
60
+
61
+ |4|ba|20|0|1||
62
+
63
+ |5|c|10|null|null||
64
+
65
+ |6|ca|10|0|0||
66
+
67
+ |6|da|10|1|1||
68
+
69
+
70
+
71
+ また、
28
72
 
29
73
 
30
74
 
@@ -34,14 +78,12 @@
34
78
 
35
79
  ``` PL/SQL
36
80
 
37
- select id, class,
38
-
39
- (case when class = 'a' then (select time where class= 'a') + (select time from where con1='1' and con2='1')
40
-
41
- else time end) from sample1;
42
-
43
81
  ```
44
82
 
45
83
 
46
84
 
47
85
  以上、ご教授お願い致します。
86
+
87
+
88
+
89
+ 追記しましたのでよろしくお願い致します。