oracle 问题,下面的SQL了,怎么改好来啊??我调一好,希望有人帮帮我
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 问题,下面的SQL了,怎么改好来啊??我调一好,希望有人帮帮我相关的知识,希望对你有一定的参考价值。
select decode(rownum,1,sum(CANCEL_NUM)),
CT_DATE,TOKEN_TYPE,ENABLED_NUM,TOKEN_NUM,ENABLED_TOTAL_NUM,DISABLE_TOTAL_NUM
from
CEB_TOKEN_STATUS
group by CT_DATE,TOKEN_TYPE,ENABLED_NUM,TOKEN_NUM,ENABLED_TOTAL_NUM,DISABLE_TOTAL_NUM
ORA-00979: not a GROUP BY expression
改成:
select case when rownum=1 then b.sum else 0 end, CT_DATE, TOKEN_TYPE, ENABLED_NUM, TOKEN_NUM, ENABLED_TOTAL_NUM, DISABLE_TOTAL_NUM
from
CEB_TOKEN_STATUS a, (select sum(CANCEL_NUM) sum from CEB_TOKEN_STATUS) b
group by CT_DATE,TOKEN_TYPE,ENABLED_NUM,TOKEN_NUM,ENABLED_TOTAL_NUM,DISABLE_TOTAL_NUM 参考技术A select decode(rownum,1,sum(CANCEL_NUM)),
CT_DATE,TOKEN_TYPE,ENABLED_NUM,TOKEN_NUM,ENABLED_TOTAL_NUM,DISABLE_TOTAL_NUM
from
CEB_TOKEN_STATUS
group by CT_DATE,TOKEN_TYPE,ENABLED_NUM,TOKEN_NUM,ENABLED_TOTAL_NUM,DISABLE_TOTAL_NUM,rownum
这样写没有语法错误,好像没什么意义 参考技术B 前面出现了rownum,但是group by 没有这个
当然 如果group by rownum了 也失去意义了
不理解你的本来想法 没法帮你改 参考技术C 分组函数Group BY是用来汇总分组的。你的select的值没有Sum,也没有Max/min。
select max(Decode。。。。)试试 参考技术D 不能用rownum,你是要查分组后的每组的第一个CANCEL_NUM值么?
请问oracle中scott用户都有哪些可供练习的表?怎么查询呢
参考技术A 以scott用户登陆,执行下面的sql可以查看改用户下面的所有表select * from user_tables 参考技术B 主要是emp,deptno,这两张够你练手了
用scott用户登陆
select * from tab; 参考技术C sqlplus下
conn scott/tiger
select * from tab;
结果
TNAME TABTYPE CLU
------------------------------ ------- ----
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE本回答被提问者采纳 参考技术D 练习什么?自己建表练呗
以上是关于oracle 问题,下面的SQL了,怎么改好来啊??我调一好,希望有人帮帮我的主要内容,如果未能解决你的问题,请参考以下文章
Oracle PL/SQL 下面的代码为啥出错啊!提示CASE与WHEN见出现不匹配字符,急!