如何从两个表中获取不同的id和数量总和

时间:2016-11-19 07:16:28

标签: mysql sql subquery

我执行此操作:

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_idStr_Regn_CodeStr_Regn_Number  bill表包含bill_idnum_vehicle_number_idFlt_Fuel_Qty

1 个答案:

答案 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