Помогите мне с caculate debit balace и incredit от SQL server 2012
У меня есть столы:
Customer (Id_Customer, Name, Address) (1,A, Add1) (2,B, Add2) (3,C, Add3) (4,D, Add4) (5,E, Add5) Receipt (Id_Customer, Money) (2, 10) (3, 20) (2, 15) Payment (Id_Customer, Money) (1, 30) (2, 40) (4, 05)Теперь я хочу показать, как показано ниже:
Name ------- Debit balance ------ In credit A ----------------------------------------30 B ----------------15------------------------- C -----------------------------------------20 D -------------- 05----------------------- Total DB: ----- 20-------------Total IC: 50В том:
если сумма(деньги) квитанции < сумма(деньги) платежа
тогда дебетовое сальдо = сумма(деньги) платежа - сумма(деньги) поступления
еще
В кредите = сумма(деньги) поступления-сумма(деньги) платежа
Обратите внимание, что показывать клиенту можно только в том случае, если дебетовый баланс или кредит отличается от нуля. И составляет более () для подкачки.
Что я уже пробовал:
Я запускаю запрос, но показываю только клиентов, у которых также есть "деньги" в двух таблицах квитанция и оплата (если у клиента есть только деньги в квитанции или платеж не будет отображаться в результате, почему это так? Он не может показать этот кутомер???)
select a.*, Total_DebitBalance=sum(DebitBalance) over (), Total_InCredit=sum(InCredit) over () from (SELECT C.name, C.Address, CASE WHEN SUM(isnull(R.Money, 0))< SUM(isnull(P.Money, 0)) THEN SUM(isnull(P.Money, 0)) - SUM(isnull(R.Money, 0)) END AS DebitBalance, CASE WHEN SUM(isnull(R.Money, 0))> SUM(isnull(P.Money, 0)) THEN SUM(isnull(R.Money, 0)) - SUM(isnull(P.Money, 0)) END AS InCredit, C.Id_Customer, COUNT(*) OVER () AS total_count FROM Customer C LEFT JOIN Receipt R ON C.Id_Customer = R.Id_Customer LEFT JOIN Payment P ON C.Id_Customer = P.Id_Customer group by C.Id_Customer, C.name, C.Address)a ;ЭТО И ЕСТЬ РЕЗУЛЬТАТ:
Name ------- Debit balance ------ In credit B ----------------15------------------------- Total DB: ----- 15-------------Total IC: 0
Пожалуйста, помогите мне. Большое спасибо.
Member 14173753
кто-нибудь может мне помочь?