Mysql
 sql >> база данни >  >> RDS >> Mysql

Laravel красноречиво запитване

Това не е пълният отговор, но е близо. Без значение как обработвам данните обаче, не мога да разбера как измисляте cash_has . Също така го поддържам необработен SQL, защото смятам, че би било по-полезно и не би трябвало да е трудно да се преобразува обратно в инструмент за създаване на заявки. Също така не знам точните имена на колони, така че може да се наложи да коригирате някои от тях.

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

Причината да получавате грешка при заявката си обаче е, че ако групирате по нещо, трябва да групирате по всичко, което изберете, което не е сборна колона (функции като sum, max, avg).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Laravel PDOException грешка в Connector.php ред 55

  2. Не можете да посочите целева таблица за актуализиране в клаузата FROM

  3. как да извлека данни от повече от една таблица?

  4. MySQL Как да INSERT INTO таблица с подзаявка SELECT, връщаща няколко реда?

  5. Инструкция SELECT на MySQL с едно DISTINCT поле