質問編集履歴
4
修正の為
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
再表示
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
追加の判定基準が出た為、ソースコードを追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -4,9 +4,14 @@
|
|
4
4
|
|
5
5
|
### 前提
|
6
6
|
|
7
|
+
元々あったSQLのコードを、CASE句を書き加え条件分岐で表示しようとしています。
|
7
|
-
|
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 (
|
65
|
+
WHEN user.BUSYO_CD IN (’014’, ’023’) THEN ’〇’
|
29
|
-
WHEN user.BUSYO_CD IN (
|
66
|
+
WHEN user.BUSYO_CD IN (’064’) THEN ’△’
|
30
|
-
WHEN user.BUSYO_CD IN (
|
67
|
+
WHEN user.BUSYO_CD IN (’065’) THEN ’□’
|
31
|
-
WHEN user.BUSYO_CD IN (
|
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
|
-
|
93
|
+
ORDER BY
|
43
|
-
CASE
|
44
|
-
|
94
|
+
substr(log.REQUEST_INFO,instr(log.REQUEST_INFO,’cyohyoID:[’) + 10),
|
45
|
-
|
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
ソースコードに誤りがありましたので訂正しました。
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 (‘0
|
29
|
+
WHEN user.BUSYO_CD IN (‘064’) THEN ‘△’
|
30
|
-
WHEN user.BUSYO_CD IN (‘0
|
30
|
+
WHEN user.BUSYO_CD IN (‘065’) THEN ‘□’
|
31
|
-
WHEN user.BUSYO_CD IN (‘0
|
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 (‘0
|
45
|
+
WHEN user.BUSYO_CD IN (‘064’) THEN ‘△’
|
46
|
-
WHEN user.BUSYO_CD IN (‘0
|
46
|
+
WHEN user.BUSYO_CD IN (‘065’) THEN ‘□’
|
47
|
-
WHEN user.BUSYO_CD IN (‘0
|
47
|
+
WHEN user.BUSYO_CD IN (‘066’) THEN ‘×’
|
48
48
|
END;
|
49
49
|
|
50
50
|
|