質問編集履歴

4

修正の為

2023/02/27 05:50

投稿

k.k
k.k

スコア1

test CHANGED
File without changes
test CHANGED
@@ -66,7 +66,7 @@
66
66
  WHEN user.BUSYO_CD IN (’064’) THEN ’△’
67
67
  WHEN user.BUSYO_CD IN (’065’) THEN ’□’
68
68
  WHEN user.BUSYO_CD IN (’066’) THEN ’×’
69
- ELSE code_tiiki.CODENAME
69
+ ELSE code_tiiki.CODE_NAME
70
70
  END as 地域,
71
71
  COUNT(*) as 回数
72
72
 
@@ -88,7 +88,7 @@
88
88
  WHEN user.BUSYO_CD IN (’065’) THEN ’□’
89
89
  WHEN user.BUSYO_CD IN (’066’) THEN ’×’
90
90
  ELSE code_tiiki.CODE_NAME
91
- END
91
+ END
92
92
 
93
93
  ORDER BY
94
94
  substr(log.REQUEST_INFO,instr(log.REQUEST_INFO,’cyohyoID:[’) + 10),

3

再表示

2023/02/27 05:34

投稿

k.k
k.k

スコア1

test CHANGED
File without changes
test CHANGED
@@ -99,4 +99,3 @@
99
99
  ### 補足情報(FW/ツールのバージョンなど)
100
100
 
101
101
  Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - ProductionVersion 18.11.0.0.0
102
- こめ

2

追加の判定基準が出た為、ソースコードを追加

2023/02/27 05:28

投稿

k.k
k.k

スコア1

test CHANGED
File without changes
test CHANGED
@@ -4,9 +4,14 @@
4
4
 
5
5
  ### 前提
6
6
 
7
+ 元々あったSQLのコードを、CASE句を書き加え条件分岐で表示しようとしています。
7
- 以下の実行を行ったところ、「GROUP BYの式ではありません」とエラーがでてしまいます。 CASE句の部分が原因かとは思うのですが、対処法が分かりません。
8
+ ただ、実行を行ったところ、「GROUP BYの式ではありません」とエラーがでてしまいます。 CASE句の部分が原因かとは思うのですが、対処法が分かりません。
8
9
  (調べる限りでは誤りがないようにみえるのですが、CASE句以外の部分で誤りがあるのでしょうか、、?)
9
10
  どなたか解決策を教えていただけませんでしょうか?
11
+
12
+ ※CASE句にて条件分岐する前のソースコードも記載しております。
13
+ コード中に「CODE_KBN = ’AH’」などと出てきますが、code_tableにて様々なコー. ドの区分や紐づくコードが定義されています。
14
+ 今回の場合だと、「AH」というコード区分の中に更に番号が振られており、その番号が部署を判別するコードになります。
10
15
 
11
16
  よろしくお願いします。
12
17
 
@@ -16,40 +21,82 @@
16
21
  00979. 00000- “not a GROUP BY expression”
17
22
  *Cause:
18
23
  *Action
19
- 行1列1,538でえら
24
+ 行1列1,538でエラ
20
25
 
21
26
  ### 該当のソースコード
22
27
 
23
28
  Oracle SQL Developer上にて実行
24
29
 
25
30
 
31
+ ※CASE句記載前のソースコード(こちらは正しく実行できます)
32
+
26
33
  SELECT
34
+ substr(log.REQUEST_INFO,instr(log.REQUEST_INFO,’cyohyoID:[’) + 10) as 帳票ID,
35
+ code_tiiki.CODE_NAME as 地域,
36
+ COUNT(*) as 回数
37
+
38
+ FROM
39
+ log_table log
40
+ LEFT JOIN user_table user on log.user_id = user.user_id
41
+ LEFT JOIN
42
+ (SELECT CODE_KBN, CODE, CODE_NAME FROM code_table
43
+ WHERE CODE_KBN = ’AH’) code_tiiki on use.TIIKI_CD = code.CODE)
44
+
45
+ WHERE
46
+ log.time BETWEEN ’2022/12/26’ and ’2023/01/25’
47
+
48
+ GROUP BY
49
+ substr(log.REQUEST_INFO,instr(log.REQUEST_INFO,’cyohyoID:[’) + 10),
50
+ code_tiiki.CODE_NAME
51
+
52
+ ORDER BY
53
+ substr(log.REQUEST_INFO,instr(log.REQUEST_INFO,’cyohyoID:[’) + 10),
54
+ code_tiiki.CODE_NAME;
55
+
56
+
57
+
58
+
59
+ ※CASE句にて条件分岐を行ったコード
60
+  こちらを実行するとエラーがでます
61
+
62
+ SELECT
63
+ substr(log.REQUEST_INFO,instr(log.REQUEST_INFO,’cyohyoID:[’) + 10) as 帳票ID,
27
64
  CASE
28
- WHEN user.BUSYO_CD IN (014’, 023’) THEN 〇’
65
+ WHEN user.BUSYO_CD IN (014’, 023’) THEN 〇’
29
- WHEN user.BUSYO_CD IN (064’) THEN △’
66
+ WHEN user.BUSYO_CD IN (064’) THEN △’
30
- WHEN user.BUSYO_CD IN (065’) THEN □’
67
+ WHEN user.BUSYO_CD IN (065’) THEN □’
31
- WHEN user.BUSYO_CD IN (066’) THEN ×’
68
+ WHEN user.BUSYO_CD IN (066’) THEN ×’
69
+ ELSE code_tiiki.CODENAME
32
70
  END as 地域,
33
71
  COUNT(*) as 回数
34
72
 
35
73
  FROM
36
74
  log_table log
37
75
  LEFT JOIN user_table user on log.user_id = user.user_id
38
-
76
+ LEFT JOIN
77
+ (SELECT CODE_KBN, CODE, CODE_NAME FROM code_table
78
+ WHERE CODE_KBN = ’AH’) code_tiiki on use.TIIKI_CD = code.CODE)
79
+
39
80
  WHERE
40
81
  log.time BETWEEN ‘2022/12/26’ and ‘2023/01/25’
82
+
83
+ GROUP BY
84
+ substr(log.REQUEST_INFO,instr(log.REQUEST_INFO,’cyohyoID:[’) + 10),
85
+ CASE
86
+ WHEN user.BUSYO_CD IN (’014’, ’023’) THEN ’〇’
87
+ WHEN user.BUSYO_CD IN (’064’) THEN ’△’
88
+ WHEN user.BUSYO_CD IN (’065’) THEN ’□’
89
+ WHEN user.BUSYO_CD IN (’066’) THEN ’×’
90
+ ELSE code_tiiki.CODE_NAME
91
+ END
41
92
 
42
- GROUP BY
93
+ ORDER BY
43
- CASE
44
- WHEN user.BUSYO_CD IN (‘014’, ‘023’) THEN ‘〇’
94
+ substr(log.REQUEST_INFO,instr(log.REQUEST_INFO,’cyohyoID:[’) + 10),
45
- WHEN user.BUSYO_CD IN (‘064’) THEN ‘△’
95
+ code_tiiki.CODE_NAME;
46
- WHEN user.BUSYO_CD IN (‘065’) THEN ‘□’
47
- WHEN user.BUSYO_CD IN (‘066’) THEN ‘×’
48
- END;
49
96
 
50
97
 
51
98
 
52
99
  ### 補足情報(FW/ツールのバージョンなど)
53
100
 
54
101
  Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - ProductionVersion 18.11.0.0.0
55
-
102
+ こめ

1

ソースコードに誤りがありましたので訂正しました。

2023/02/27 04:03

投稿

k.k
k.k

スコア1

test CHANGED
File without changes
test CHANGED
@@ -25,11 +25,11 @@
25
25
 
26
26
  SELECT
27
27
  CASE
28
- WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘〇’
28
+ WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘〇’
29
- WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘△’
29
+ WHEN user.BUSYO_CD IN (‘064) THEN ‘△’
30
- WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘□’
30
+ WHEN user.BUSYO_CD IN (‘065’) THEN ‘□’
31
- WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘×’
31
+ WHEN user.BUSYO_CD IN (‘066’) THEN ‘×’
32
- END as 地域
32
+ END as 地域,
33
33
  COUNT(*) as 回数
34
34
 
35
35
  FROM
@@ -41,10 +41,10 @@
41
41
 
42
42
  GROUP BY
43
43
  CASE
44
- WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘〇’
44
+ WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘〇’
45
- WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘△’
45
+ WHEN user.BUSYO_CD IN (‘064) THEN ‘△’
46
- WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘□’
46
+ WHEN user.BUSYO_CD IN (‘065’) THEN ‘□’
47
- WHEN user.BUSYO_CD IN (‘014, 023) THEN ‘×’
47
+ WHEN user.BUSYO_CD IN (‘066’) THEN ‘×’
48
48
  END;
49
49
 
50
50