我执行此操作:
select
(select sum(Flt_Fuel_Qty)
from ful_fuel_issue_bills group by num_vehicle_number_id) as eachvehiclequantity,
(SELECT concat(d.Str_Regn_Code , '-' , d.Str_Regn_Number)
FROM ful_vehicle_list_m d
WHERE a.Num_Vehicle_Number_Id = d.Num_Vehicle_ID
group by a.num_vehicle_number_id) AS Vehicle_No
from
ful_fuel_issue_bills a
但是我收到了错误:
子查询返回超过1行
我该如何解决这个问题?
我希望输出中的列为:
Vehicle No Quantity
vehicle
表包含num_vehicle_id
,Str_Regn_Code
,Str_Regn_Number
bill
表包含bill_id
,num_vehicle_number_id
,Flt_Fuel_Qty
答案 0 :(得分:1)
你不能(也不应该)用子选择来做这件事,因为 - 就像错误信息所说的那样 - 他们从主from
子句产生的每条记录返回多条记录。
而是在join
子句中使用from
,如下所示:
select sum(a.Flt_Fuel_Qty) as eachvehiclequantity,
concat(d.Str_Regn_Code , '-' , d.Str_Regn_Number) AS Vehicle_No
from ful_vehicle_list_m d
left join ful_fuel_issue_bills a
on a.Num_Vehicle_Number_Id = d.Num_Vehicle_ID
group by d.Num_Vehicle_ID