Heredé el siguiente diseño de base de datos. Las tablas son:SQL JOIN, GROUP BY en tres tablas para obtener totales
customers
---------
customerid
customernumber
invoices
--------
invoiceid
amount
invoicepayments
---------------
invoicepaymentid
invoiceid
paymentid
payments
--------
paymentid
customerid
amount
Mi consulta tiene que volver InvoiceID, el importe de la factura (en la tabla de facturas), y la cantidad adeudada (importe de la factura menos los pagos que se han hecho hacia la factura) para un CUSTOMERNUMBER dado. Un cliente puede tener múltiples facturas.
La siguiente consulta me da, registros duplicados cuando los pagos se realizan múltiples a una factura:
SELECT i.invoiceid, i.amount, i.amount - p.amount AS amountdue
FROM invoices i
LEFT JOIN invoicepayments ip ON i.invoiceid = ip.invoiceid
LEFT JOIN payments p ON ip.paymentid = p.paymentid
LEFT JOIN customers c ON p.customerid = c.customerid
WHERE c.customernumber = '100'
¿Cómo puedo solucionar esto?
¿cuántas filas de pagos de facturas pueden existir para una factura? ¿cuántos pagos pueden existir para cada paymentid? –