Я пытаюсь определить общую сумму частичных платежей, сделанных для одной суммы счета, но когда я выполняю ВНУТРЕННЕЕ СОЕДИНЕНИЕ для вычисления частичных платежей, T-SQL автоматически объединяет каждую сумму счета для каждой частичной оплатыэто, искажая итоги счета.Это не выдает никаких ошибок, но я перепробовал все, что мог придумать, поэтому, если у кого-нибудь есть какие-либо полезные советы о том, как подойти к этому, это будет высоко ценится!
DECLARE @StartYear INT
SET @StartYear = '2014'
DECLARE @EndYear INT
SET @EndYear = '2018'
SELECT
COUNT(i.InvoiceKey) AS InvoiceKey,
ISNULL(YEAR(p.TransPostDate), @StartYear) AS PaymentYear,
SUM(i.Amt) AS InvoiceAmount,
SUM(p.Amt) AS PartialPaymentsTotalsAmount
FROM .[Invoices] i
INNER JOIN [Payments] p ON i.InvoiceKey = p.InvoiceKey
WHERE i.ClientKey = '518'
AND p.InvClientKey = '518'
AND i.CloseDate IS NULL
AND (p.TransPostDate IS NOT NULL OR ((YEAR(p.TransPostDate) * 100)) BETWEEN ((@StartYear * 100)) AND ((@EndYear * 100)) )
GROUP BY i.InvoiceKey, YEAR(p.TransPostDate)
ORDER BY YEAR(p.TransPostDate) ASC;