Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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 10g通过引发列数相同的异常来选择组_Oracle - Fatal编程技术网

oracle 10g通过引发列数相同的异常来选择组

oracle 10g通过引发列数相同的异常来选择组,oracle,Oracle,它正在抛出异常 select case when exists (select "CreatedOn" dategn from "RentedVehicle" where "fkTempVehicleId"=3) then case when exists (select "CreatedOn" dategn from "Transfer" where "fkTempVehicleId"=3) then

它正在抛出异常

 select 
        case when exists (select "CreatedOn" dategn from "RentedVehicle" where "fkTempVehicleId"=3) 
        then 
        case when exists (select "CreatedOn" dategn from "Transfer" where "fkTempVehicleId"=3) 
        then 
           (select 
           case when rent.dategn>tran.dategn then rent.dategn else tran.dategn end dategn,
           case when rent.dategn>tran.dategn then rent.fuel else tran.fuel end fuel
           from 
              (
               select max("CreatedOn") dategn,"CheckInFuel" fuel 
               from "RentedVehicle" where "fkTempVehicleId"=3 
               group by "RentedVehicle"."CheckInFuel"
              ) rent ,
        (select max("CreatedOn") dategn,"fkFuelLevelId" fuel 
        from "Transfer" where "fkTempVehicleId"=3 group by "Transfer"."fkFuelLevelId") tran) 
        else 
        (select
         max("CreatedOn") dategn,"CheckInFuel" fuel 
        from "RentedVehicle" where "fkTempVehicleId"=3 group by "RentedVehicle"."CheckInFuel") end 
        else 
        case when exists (select "CreatedOn" dategn from "Transfer" where "fkTempVehicleId"=3) 
        then 
        (select max("CreatedOn") dategn,"fkFuelLevelId" fuel 
        from "Transfer" where "fkTempVehicleId"=3 group by "Transfer"."fkFuelLevelId") 
        else 
        (select "CreatedOn" dategn,"InitialFuel" fuel from "TempVehicle" where "pkTempVehicleId"=3) 
        end end  from dual;
我肯定我错过了一些东西,但我几乎尝试了所有东西。
请帮助并详细说明我遗漏了什么

案例语句的内联选择部分返回两个值dategn和fuel,其中只允许一个值:

ORA-00913: too many values
00913. 00000 -  "too many values"
*Cause:    
*Action:
Error at Line: 6 Column: 2

case在每行调用时,每行只能返回一个值。

我删除了这一行,case when rent.dategn>tran.dategn然后rent.fuel else tran.fuel end fuel。相同的Error@KhurramZulfiqarAli-您的最终选择,选择CreatedOn dategn,初始化来自TempVehicle的燃油,其中pkTempVehicleId=3,也有两个值。还有之前的那个。检查错误中的行号很有用。也许您需要一种新的方法来解决您的问题。据我所知,您正在尝试从三个表中选择TempVehicle、Transfer、RentedVehicle,但从未加入它们。有两个表具有外键fkTempVehicleId,现在我必须通过提供外键来选择任何表中存在的最新记录。如果两个表都没有该id的记录,那么我必须从它自己的表中选择这些记录。@KhurramZulfiqarAli:然后它发送,好像您最好合并单独的结果,以便获得一致的列计数,在内联视图中包装这些记录,并根据您的条件选择适当的数据集。
...
then 
(select 
case when rent.dategn>tran.dategn then rent.dategn else tran.dategn end dategn,
case when rent.dategn>tran.dategn then rent.fuel else tran.fuel end fuel
from ...