Heim > Fragen und Antworten > Hauptteil
Ich möchte eine Subtraktion zwischen entotalitem und exotalitem durchführen. Die Abfrage, die ich verwende, besteht darin, Daten aus derselben Tabelle tbl_orders_data abzurufen.
Ich habe versucht, zwei Abfragen zu erstellen, die erste Abfrage dient zum Abrufen von Entotalitem und die zweite Abfrage zum Abrufen von Exotalitem
$encheck = DB::table('tbl_orders_data') ->select('slot_id', DB::raw('sum(total_item) as entotalitem')) ->where('id_order_data', 'like', 'PBM' . '%') ->groupBy('slot_id') ->pluck('entotalitem'); $excheck = DB::table('tbl_orders_data') ->select('slot_id', DB::raw('sum(total_item) as extotalitem')) ->where('id_order_data', 'like', 'PBK' . '%') ->groupBy('slot_id') ->pluck('extotalitem'); $en = $encheck; $ex = $excheck; dd($en - $ex);
Muss ich nur eine Abfrage verwenden? Oder sollte ich zwei Abfragen durchführen, wie ich es versucht habe? Bitte helfen Sie mir, danke
P粉5150665182023-09-08 09:38:50
您可以在这里使用条件聚合:
$check = DB::table('tbl_orders_data') ->select('slot_id', DB::raw("sum(case when id_order_data like 'PBM%' then total_item else 0 end) - sum(case when id_order_data like 'PBK%' then total_item else 0 end) as totalitem")) ->groupBy('slot_id') ->pluck('totalitem');