Anda mengalikan jumlah pembayaran dengan jumlah catatan penjualan, karena Anda menggabungkan semua catatan pembayaran dengan semua catatan penjualan sebelum menjumlahkan jumlahnya.
Agregat dulu, baru bergabung kemudian.
Jika hanya ada satu catatan pembayaran per tanggal, waktu dan nama:
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';
Jika tidak:
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';