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 /*дата занесения*/
)