Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.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
Oracle 不断抛出错误,ORA-01427:单行子查询返回多行01427。00000-“单行子查询返回多行”_Oracle - Fatal编程技术网

Oracle 不断抛出错误,ORA-01427:单行子查询返回多行01427。00000-“单行子查询返回多行”

Oracle 不断抛出错误,ORA-01427:单行子查询返回多行01427。00000-“单行子查询返回多行”,oracle,Oracle,一个或两个子查询返回了多行 我们对此无能为力,因为只有你知道在这种情况下该怎么办 一个根本不明智的选择是获取最小值或最大值,例如 Select tran_date,tran_particular, (select tran_amt from tbaadm.dtd where part_tran_type = 'D') DR, (select tran_amt from tbaadm.dtd where part_tran_type = 'C')CR from tbaadm.dtd ,tbaad

一个或两个子查询返回了多行

我们对此无能为力,因为只有你知道在这种情况下该怎么办

一个根本不明智的选择是获取最小值或最大值,例如

Select tran_date,tran_particular, (select tran_amt from tbaadm.dtd where part_tran_type = 'D') DR,
(select tran_amt from tbaadm.dtd where part_tran_type = 'C')CR 
from tbaadm.dtd ,tbaadm.gam;
更明智的选择是确保只返回一行;也许可以在where条款中加入附加条件


或者,完全跳过子查询并使用您所使用的连接-交叉连接;可能不是你想做的。案例可能解决您的dr和cr列;如果没有,请考虑自己加入。

错误非常清楚:预期返回一行的子查询返回的更多。您必须对子查询进行检查。还有,没有连接条件?甚至,你应该考虑切换到ANSI连接语法。谢谢。但是我已经使用了这个选择TrimeDATA,TraseUnad,PaseTrasyType=‘D’,然后TrimaMaTor其他null结尾为DR,当PaseTrangyType=‘C’的情况,然后TrimaMnor其他null结尾作为TBAADM.DTD的CR,TBAdMAD.GAM,其中GAM.YAC= DTD酸;如何在此sql语句中使用以下格式将我的交易金额格式化为货币--PRINT FORMATMESSAGE'The number is:%s',format5000000.759145678',0.00'--?从tbaadm.dtd、tbaadm.gam(其中gam.acid=dtd.acid)中选择账户名称、交易日期、交易特殊性、case(当零件交易类型为'D'时)和case(交易金额为0)作为DR结束、case(当零件交易类型为'C'时)和tran(交易金额为0)作为CR结束;
Select tran_date,
       tran_particular, 
       (select min(tran_amt) from tbaadm.dtd where part_tran_type = 'D') DR,  --> here
       (select min(tran_amt) from tbaadm.dtd where part_tran_type = 'C') CR   --> here
from tbaadm.dtd, tbaadm.gam;