
奇怪的 ORA-00979: 不是Group BY表达式问题

今天碰到个奇怪的 ORA-00979: 不是Group BY表达式问题, 主要代码如下:
insert into r_ind_crcard_inf
(data_dt,
inst_id,
cancl_code,
th_mnth_iss_ind,
crdt_card_cnt,
crdt_acct_cnt)
select
data_dt,
nvl(t1.open_inst_id,'@') as inst_id,
nvl(t1.cancl_code,'@') as cancl_code,
decode(to_char(t1.issue_day,'yyyymm'),substr(i_etl_date,1,6),'1','0') as th_mnth_iss_ind,
count(*) as crdt_card_cnt,
count(distinct t1.acct_no) as crdt_acct_cnt
from g_ind_crcard_inf t1
where t1.data_dt=v_etl_date
group by
nvl(t1.open_inst_id,'@'),
nvl(t1.cancl_code,'@'),
decode(to_char(t1.issue_day,'yyyymm'),substr(i_etl_date,1,6),'1','0');
复制
这段代码直接在plsql develop中执行,把日期变量改成具体日期是可以正常运行的, 但是放进存储过程中,去跑存储过程就是报ORA-00979: 不是Group BY表达式问题, 但如果把 count(distinct t1.acct_no) as crdt_acct_cnt中的distinct 去掉,在存储过程中是可以运行的,为啥加了个distinct就会报错呢 ? 更理解不了的是, 即使不去掉distinct, 放在plsql develop中直接执行sql语句也不会报错, 真是百思不得其解 ?
我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
回答交流
Markdown
请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
