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

MySQL SUM-funktion i flere joinforbindelser

Dette er en smerte på grund af de mange hierarkier. Jeg vil foreslå:

SELECT c.id, ch.charge_amount, ch.taxes_amount
FROM Customer c LEFT JOIN
     (SELECT ch.customer_id, SUM(ch.amount) as charge_amount,
             SUM(t.taxes_amount) as taxes_amount
      FROM Charges ch LEFT JOIN
           (SELECT t.charge_id, SUM(t.amounts) as taxes_amount
            FROM taxes t
            GROUP BY t.charge_id
           ) t
           ON t.charge_id = ch.id
      GROUP BY ch.customer_id
     ) ch
     ON ch.customer_id = c.id;

Du vil ikke være i stand til at løse dette uden underforespørgsler af en eller anden form, hvis der er flere gebyrer for en kunde eller flere skatter på en opkrævning.




  1. Hvordan opbygger jeg en oversigt ved at slutte mig til en enkelt tabel med SQL Server?

  2. Oracle DBMS_LOB.INSTR og CONTAINS ydeevne

  3. Hvordan date_part() virker i PostgreSQL

  4. Top-N-forespørgsler og sideinddeling i Oracle