Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQLSyntaxErrorException:ORA-00979:不是按表达式分组_Java_Sql_Database_Oracle - Fatal编程技术网

Java SQLSyntaxErrorException:ORA-00979:不是按表达式分组

Java SQLSyntaxErrorException:ORA-00979:不是按表达式分组,java,sql,database,oracle,Java,Sql,Database,Oracle,在java中运行此代码时,我得到的错误不是一个GROUP BY表达式,而是在SQL Developer中正常工作。不知道我哪里做错了。 有人请帮忙吗 错误:SQLSyntaxErrorException:ORA-00979:不是GROUP BY表达式 选择data.portfolioid作为客户ID, company.name作为company, truncdata.startdate,:格式为使用日期, SUMdata.sessions作为会话, SUMdata.zerosessions作为z

在java中运行此代码时,我得到的错误不是一个GROUP BY表达式,而是在SQL Developer中正常工作。不知道我哪里做错了。 有人请帮忙吗

错误:SQLSyntaxErrorException:ORA-00979:不是GROUP BY表达式

选择data.portfolioid作为客户ID, company.name作为company, truncdata.startdate,:格式为使用日期, SUMdata.sessions作为会话, SUMdata.zerosessions作为zerosessions, SUMdata.sms作为sms, SUMdata.VOICEDURATION作为VOICEDURATION, SUMdata.totalbytes作为总字节, SUMdata.billedbytes作为规范化字节, sim.custom0作为CUSTOM1 从…起 选择portfolioid, 上下文 开始日期, 总字节数, 账单字节, 会议, 零次会议, 短讯服务, 语音持续时间, sim.imsi 来自nmma_abc_mo数据 内部连接nn_abc sim ON data.imsi=sim.imsi 叶状体在哪里 选择pf.id 来自北卡罗来纳州交通局, nn_abc pcb, nn_abc pf 其中pcb.id=cb.productid pf.id=pcb.portfolioid 和pf.domainid=:domainid 和:portfolioid=-1 或pf.id=:portfolioid 和data.startdate之间的日期:startdate,'YYYY-MM-DD HH24:MI:SS'和日期:endDate,'YYYY-MM-DD HH24:MI:SS'数据 左连接portfolio.id=data.portfolioid上的nnp_abc投资组合 左键在company.id=portfolio.companyid上加入nnpc_abc公司 左连接nnsc_v_abc sim ON sim.imsi=data.imsi 其中sim.custom0不为空 按数据分组, 公司名称, truncdata.startdate,:格式, sim.0 按数据排序。portfolioid
因此,正如我在评论中提到的,尝试将日期格式移动到内部查询,以避免重复出现如下占位符:

选择data.portfolioid作为客户ID, company.name作为company, data.usage_date作为使用日期, SUMdata.sessions作为会话, SUMdata.zerosessions作为zerosessions, SUMdata.sms作为sms, SUMdata.VOICEDURATION作为VOICEDURATION, SUMdata.totalbytes作为总字节, SUMdata.billedbytes作为规范化字节, sim.custom0作为CUSTOM1 从选择portfolioid, 上下文 truncstartdate,:格式为使用日期 总字节数, 账单字节, 会议, 零次会议, 短讯服务, 语音持续时间, sim.imsi 来自nmma_abc_mo数据 内部连接nn_abc sim ON data.imsi=sim.imsi 其中选择pf.id中的portfolioid 来自nc_vt_abc cb、nn_abc pcb、nn_abc pf 其中pcb.id=cb.productid pf.id=pcb.portfolioid 和pf.domainid=:domainid 和:portfolioid=-1或pf.id=:portfolioid 和data.startdate之间的日期:startdate,'YYYY-MM-DD HH24:MI:SS'和 截止日期:截止日期,“YYYY-MM-DD HH24:MI:SS” 数据 左连接portfolio.id=data.portfolioid上的nnp_abc投资组合 左键在company.id=portfolio.companyid上加入nnpc_abc公司 左连接nnsc_v_abc sim ON sim.imsi=data.imsi 其中sim.custom0不为空 按data.portfolioid、company.name、data.usage\u日期、sim.custom0分组 按数据排序。portfolioid;
快速看一眼,可能是因为:format实际上是两个不同的变量,所以Oracle在编译时没有检查它们是否相等。尝试将日期格式移动到内部查询,以便只需格式化一次。以下是有关重复占位符的一些信息: