【发布时间】:2014-10-08 09:01:21
【问题描述】:
这是我正在尝试的查询:
SELECT DISTINCT(
( select distinct (
(SELECT COUNT(*)
FROM PROCESS
WHERE STARTDATE > sysdate - INTERVAL '7' DAY) -
(SELECT COUNT(*)
FROM PROCESS
WHERE STARTDATE > sysdate - INTERVAL '14' DAY AND
STARTDATE < sysdate - INTERVAL '7' DAY)
)as c3
from process) /
( SELECT (CASE WHEN COUNT(*)=0 THEN (
SELECT (case WHEN COUNT(*)=0 THEN 1 ELSE COUNT(*) end)
FROM PROCESS
WHERE STARTDATE > SYSDATE - INTERVAL '7' DAY )
ELSE COUNT(*) END)
FROM PROCESS
WHERE STARTDATE > SYSDATE - INTERVAL '14' DAY AND
STARTDATE < SYSDATE - INTERVAL '7' DAY )
) AS ORDER_VOLUME FROM PROCESS;
但我收到此错误:
ORA-00937: not a single-group group function
00937. 00000 - "not a single-group group function"
*Cause:
*Action:
Error at Line: 1 Column: 295
谁能帮我解决这个问题?
这是我想要的
1) 获取 STARTDATE > SYSDATE - INTERVAL '14' DAY AND 的计数 STARTDATE SYSDATE - INTERVAL '14' DAY AND STARTDATE
如果在步骤 2) 中检索到的计数也为 0,则将计数设置为 1 else 设置检索到的计数
【问题讨论】:
-
请通过绘制问题添加示例数据和您想要的结果
-
首先你应该分别执行两个选择(在
/之前和之后),这样你就可以更好地知道哪个部分导致了错误 -
@Andreas 我在下半场遇到问题(在 / 之后)