group by语句不能执行
耿两块 2016-01-19 09:59:35 有以下sql,执行时报00979错误,不是group by表达式:
select zgs,(select mc from ve_comp where bh = b.zgs) zgsmc,aa from (
select f_lql_getcompsupper(dp_compid) zgs,count(1) aa from ticket_all a
where dp_datetime_date >= to_date('2015-12-21','yyyy-mm-dd') and dp_datetime_date <= to_date('2015-12-31','yyyy-mm-dd') and zkfx = '1'
group by f_lql_getcompsupper(dp_compid)
) b;
group by出现在内层查询sql里,但是内层查询sql可以正常执行:
select f_lql_getcompsupper(dp_compid) zgs,count(1) aa from ticket_all a
where dp_datetime_date >= to_date('2015-12-21','yyyy-mm-dd') and dp_datetime_date <= to_date('2015-12-31','yyyy-mm-dd') and zkfx = '1'
group by f_lql_getcompsupper(dp_compid);
分完组之后,在外层套了一层,结果就报错了。这个让我不能理解。
找了几个客户,有的的可以执行,有的也报同样的错。发现一个共同点,可以执行的客户,oracle是10.2.0.1.0版的,报错的客户是10.2.0.4.0版的。
也许是这个版本里有bug。
做个记录,有时间了再找找具体的原因