2016-11-19 95 views
0

得到不同的ID和數量的總和我執行此:如何從兩個表

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 

,但我得到一個錯誤:

Subquery returns more than 1 row

我該如何解決這個問題?

我想在輸出中的列:

Vehicle No Quantity 

vehicle表包含num_vehicle_idStr_Regn_CodeStr_Regn_Numberbill表包含bill_idnum_vehicle_number_idFlt_Fuel_Qty

+1

請提及這些表之間的關係。如果不存在,那麼這些表之間是否存在任何映射? –

回答

1

你不能(也不應該)使用子選擇執行此操作,因爲 - 就像錯誤消息所述 - 它們會從主要from子句生成的每個記錄返回多個記錄。

from子句中改用join,像這樣:

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 
+0

它可能沒有多大區別,但最佳實踐建議(和最新版本的MySQL要求),您在vehicle_no – Strawberry

+0

@Strawberry上組,在最新版本的MySql中,存在[功能相關字段](https:///dev.mysql.com/doc/refman/5.7/en/group-by-functional-dependence.html),這裏就是這種情況,因爲我們可以假設'num_vehicle_id'是主鍵。所以,我認爲這是好的。 – trincot