sql >> Database teknologi >  >> RDS >> Mysql

Laravel veltalende forespørgsel

Dette er ikke det komplette svar, men det er tæt på. Uanset hvordan jeg arbejder med dataene, kan jeg dog ikke finde ud af, hvordan du finder på cash_has . Jeg beholder det også rå SQL, fordi jeg føler, at det ville være mere nyttigt og ikke burde være svært at konvertere tilbage til forespørgselsbyggeren. Jeg kender heller ikke de nøjagtige kolonnenavne, så du skal muligvis rette nogle af dem.

SELECT COALESCE(outlets_admin.name, outlets.name) AS outlet, COALESCE(boys_admin.name, boys.name) AS delivery_boy, SUM(IF(cm.source_type = 'admin', amount, 0)) AS cash_taken, SUM(IF(cm.source_type = 'deliveryBoy', amount, 0)) AS cash_returned, SUM(IF(cm.source_type = 'admin', amount, 0)) - SUM(IF(cm.source_type = 'deliveryBoy', amount, 0)) AS cash_has FROM delivery_cash_manages cm LEFT JOIN outlets ON outlets.id = cm.destination_id AND cm.source_type = 'deliveryBoy' LEFT JOIN delivery_boys boys ON boys.id = cm.source_id AND cm.source_type = 'deliveryBoy' LEFT JOIN outlets outlets_admin ON outlets_admin.id = cm.source_id AND cm.source_type = 'admin' LEFT JOIN delivery_boys boys_admin ON boys_admin.id = cm.destination_id AND cm.source_type = 'admin' WHERE COALESCE(outlets.id, outlets_admin.id) = '2' # This is where you plug in your $outlet_id GROUP BY outlet, delivery_boy

Grunden til, at du får en fejl med din forespørgsel, er, at hvis du grupperer efter noget, skal du gruppere efter alt, hvad du vælger, som ikke er aggregerede kolonner (funktioner som sum, max, avg).




  1. Hvordan forbinder jeg C# med Postgres?

  2. PostgreSQL starter ikke:server.key har gruppe- eller verdensadgang

  3. Brug NEWID() til at oprette en unik værdi i SQL Server

  4. SQL Server dynamisk PIVOT-forespørgsel?