sql >> Databasteknik >  >> RDS >> Mysql

Mysql sammanfoga två tabeller summa, var och grupp efter

Du multiplicerar betalningsbeloppet med antalet försäljningsposter, eftersom du sammanfogar alla betalningsposter med alla försäljningsposter innan du summerar beloppen.

Samla först och gå med först sedan.

Om det alltid bara kan finnas en betalningspost per datum, tid och namn:

select p.name, p.time, p.name, s.sales_total, p.amount
from payments p
join
(
  select date, time, name, sum(total) as total
  from sales
  group by date, time, name
) s
 on s.date = p.date and s.time = p.time and s.name = p.name
where p.date = date '2017-04-01';

Annars:

select p.name, p.time, p.name, s.total, p.amount
(
  select date, time, name, sum(amount) as amount
  from payments
  group by date, time, name
) p
join
(
  select date, time, name, sum(total) as total
  from sales
  group by date, time, name
) s
 on s.date = p.date and s.time = p.time and s.name = p.name
where p.date = date '2017-04-01';



  1. Dela upp IPv4-adressen i 4 nummer i Oracle sql

  2. Hur ansluter man MySQL Workbench till Amazon RDS?

  3. A.* finns inte i GROUP BY med vänster koppling på laravel-frågebyggaren

  4. Inkluderar MySQL som ingår i MAMP inte en konfigurationsfil?