SQL-запрос для создания баланса - PullRequest
0 голосов
/ 18 ноября 2009

У меня есть одна таблица с именем LedgerReport, которая содержит имя клиента, номер и сумму счета-фактуры, и мне нужно сгенерировать баланс для клиентов по одной строке без использования курсоров

и я отправил вам образец отчета ниже, поэтому, пожалуйста, пришлите мне несколько советов, чтобы решить мою проблему ...

Create Table LedgerReport 
(
    Customer Nvarchar(64),
    Billno Nvarchar(64),
    Amount Decimal (10,3)
)

Insert Into LedgerReport Values ('Prem','Sb-001','5000')
Insert Into LedgerReport Values ('Prem','Sb-002','7000')
Insert Into LedgerReport Values ('Prem','Sb-003','2000')
Insert Into LedgerReport Values ('Prem','Sb-004','8000')
Insert Into LedgerReport Values ('Biswo','Sb-005','2000')
Insert Into LedgerReport Values ('Biswo','Sb-006','3000')
Insert Into LedgerReport Values ('Biswo','Sb-007','4000')
Insert Into LedgerReport Values ('Biswo','Sb-008','5000')

Select * from LedgerReport
------------------------------------------------
Customer  BillNo     Amount    **Balance**  
----------------------------------------------
Prem      Sb-001   5000.000   **5000.000**
Prem      Sb-002   7000.000  **12000.000**
Prem      Sb-003   2000.000  **14000.000**
Prem      Sb-004   8000.000  **22000.000**
Biswo     Sb-005   2000.000   **2000.000** 
Biswo     Sb-006   3000.000   **5000.000**
Biswo     Sb-007   4000.000   **9000.000**
Biswo     Sb-008   5000.000  **14000.000**

Ответы [ 3 ]

2 голосов
/ 18 ноября 2009
SELECT Customer, BillNo, Amount
    ,(SELECT SUM(Amount) 
                FROM LedgerReport 
               WHERE Customer = L.Customer
                 AND BillNo <= L.BillNo)
      'Running Total'
FROM LedgerReport L
1 голос
/ 18 ноября 2009

Вы также можете попробовать это, чтобы избежать выбора в списке столбцов

SELECT  l.Customer,
        l.Billno,
        l.Amount,
        SUM(lBal.Amount) RunningTotal
FROM    LedgerReport L LEFT JOIN
        LedgerReport lBal ON L.Customer = lBal.Customer
                            AND L.Billno >= lBal.Billno
GROUP BY l.Customer,
        l.Billno,
        l.Amount
0 голосов
/ 18 ноября 2009

SELECT Customer,SUM(Amount) FROM LedgerReport GROUP BY Customer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...