Ваш запрос будет зависеть от того, что вы пытаетесь сделать в качестве конечного результата.
Если вы хотите просто ОДИН CustomerID
, перейдите с:
SELECT a.ID AS InvoiceID, a.CustomerID, a.InvoiceVal AS StartInvoice
, b.ID AS bid, b.Payment
, a.InvoiceVal - ISNULL(SUM(b.Payment) OVER (PARTITION BY a.ID ORDER BY b.id),0) AS owed
FROM TableA a
LEFT OUTER JOIN TableB b ON a.ID = b.InvoiceID
WHERE a.CustomerID = 12
И если это CustomerID
не имеет никаких платежей, вы хотите использовать LEFT JOIN
чтобы вы не ликвидировали причитающуюся сумму.
SELECT a.ID AS aid, a.CustomerID, a.InvoiceVal AS StartInvoice
, b.ID AS bid, b.Payment
, a.InvoiceVal - ISNULL(SUM(b.Payment) OVER (PARTITION BY a.ID ORDER BY b.id),0) AS owed
FROM TableA a
LEFT OUTER JOIN TableB b ON a.ID = b.InvoiceID
WHERE a.CustomerID = 11
Я также добавил ISNULL()
вокруг Payment
, чтобы не допустить null
вашего количества owed
. Его также можно добавить в InvoiceVal
для учета идентификатора клиента, который еще не выставлен счет, если это было необходимо (или возможно из других таблиц).
Если вы хотите получить ВСЕХ CustomerID
с, вам придется учитывать это в своем разделе.
SELECT s1.CustomerID, aid AS InvoiceID, s1.bid, s1.Payment
, (s1.StartInvoice - s1.runningPayment) AS Owed
FROM (
SELECT a.ID AS aid, a.CustomerID, a.InvoiceVal AS StartInvoice
, b.ID AS bid, b.Payment
, ISNULL(SUM(b.Payment) OVER (PARTITION BY a.CustomerID, a.ID ORDER BY b.id),0) AS runningPayment
FROM TableA a
LEFT OUTER JOIN TableB b ON a.ID = b.InvoiceID
) s1
ORDER BY s1.CustomerID, s1.aid, s1.bid
Fiddle демонстрирует переплату или выплату общего остатка за 0 задолженностей.
Это означает, что было изменение в файле в ответвлении, какая Подверсия пыталась объединиться в ответвление B, но файл не существует в ответвлении B, таким образом, это нигде не должно объединять изменение. Например:
Теперь изменение в README не может быть применено в ответвлении B, потому что файл был удален туда.
Править: Это приведет к древовидному конфликту в Подверсии 1.6.
Я получал эту ошибку с svn 1.5.4, даже когда не было несовместимых изменений. При обновлении до 1.5.5 проблема у меня была исправлена.