MS SQL Обход таблицы до заданного значения

Нужно посчитать задолженность заданного лицевого счета на заданную дату. Есть две таблицы с "начислениями", где хранятся даты начислений и суммы самих начислений, и с "платежами" аналогочино. Нужно пройтись по таблице с начислениями от заданной даты до даты последнего платежа и суммировать начисления, чтобы посчитать задолженность. В SQL запросах новичок, я вроде примерно представляю алгоритм, но не знаю как на этом языке его реализовать. Цикл? Курсор? Таблицы:

CREATE TABLE Receiver /*лицевой счет*/
(ID bigint NOT NULL PRIMARY KEY,
ID_Flat bigint NOT NULL FOREIGN KEY REFERENCES Flats(ID), /*квартира*/
Number varchar(15) NOT NULL, /*номер лицевого счета*/
DateOpen datetime NOT NULL, /*дата открытия лицевого счёта*/
DateClose datetime NULL /*дата закрытия лицевого счёта*/
)
        CREATE TABLE Service /*начисления*/
    (ID bigint NOT NULL PRIMARY KEY,
    OWNER bigint NOT NULL FOREIGN KEY REFERENCES Receiver(ID),
    Code_Service int NOT NULL FOREIGN KEY REFERENCES Services(Code),/*ссылка на услугу*/
    DateCharge datetime NOT NULL, /*дата начисления*/
    Sum float NOT NULL, /*сумма начисления*/
    Month float NOT NULL, /*начисления за месяц*/
    Year float NOT NULL /*начисления за год*/
    )
    CREATE TABLE Ticket /*платежи*/
    (
    ID bigint NOT NULL PRIMARY KEY,
    OWNER bigint NOT NULL FOREIGN KEY REFERENCES Receiver(ID),
    Code_Service int NOT NULL FOREIGN KEY REFERENCES Services(Code), /*ссылка на услугу*/
    DatePay datetime NOT NULL, /*дата оплаты*/
    Sum float NOT NULL, /*сумма оплаты*/
    Year float NOT NULL, /*оплата за год*/
    DateEnter datetime NOT NULL /*дата занесения*/
    )

Ответы (0 шт):