1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
SELECT CONVERT(varchar, DATEADD(d, tblPaymentTerms.LateAfterDays, tblInvoice.DateSubmitted), 111) AS DueDate, SUM(COALESCE (details.SubTotal, 0) - COALESCE (payments.Total, 0) + COALESCE (tblInvoice.Shipping, 0)) AS BalanceDue FROM tblPaymentTerms INNER JOIN tblInvoice ON tblPaymentTerms.ID = tblInvoice.fkPaymentTerms LEFT OUTER JOIN (SELECT fkInvoice, SUM(Amount) AS Total FROM tblInvoicePayment GROUP BY fkInvoice) AS payments ON payments.fkInvoice = tblInvoice.ID LEFT OUTER JOIN (SELECT d.fkInvoice, SUM((d.Quantity * d.UnitPrice) * (1 + CASE d .Taxable WHEN 1 THEN i.SalesTaxRate ELSE 0 END)) AS SubTotal FROM tblInvoiceDetail AS d INNER JOIN tblInvoice AS i ON i.ID = d.fkInvoice GROUP BY d.fkInvoice) AS details ON details.fkInvoice = tblInvoice.ID WHERE (tblInvoice.fkInvoiceStatus IN (2, 3, 4, 5, 6, 7)) GROUP BY CONVERT(varchar, DATEADD(d, tblPaymentTerms.LateAfterDays, tblInvoice.DateSubmitted), 111) ORDER BY duedate