Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Сумма с лимитом  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
Добрый день. Вопрос в следующем:

Есть список платежей по текущим счетам.

ID Date Amount
1 2014-02-27 100
1 2014-02-28 150
1 2014-03-01 200
1 2014-03-20 250
1 2014-04-10 50

К каждому счёту есть лимит.

ID Limit
1 500

Нужно посчитать сумму по счетам за месяц, с учётом лимита. Т.е должно получиться что-то вроде:

ID Month Sum
1 2 250
1 3 250
1 4 0

Можно это как-нибудь изящно посчитать, без громоздких курсоров?
16 апр 14, 18:48    [15892555]     Ответить | Цитировать Сообщить модератору
 Re: Сумма с лимитом  [new]
Glory
Member

Откуда:
Сообщений: 104751
Шыфл
Т.е должно получиться что-то вроде:

Типа если сумма за месяц превышает лимит, то показывать лимт,а не сумму ?
16 апр 14, 18:57    [15892600]     Ответить | Цитировать Сообщить модератору
 Re: Сумма с лимитом  [new]
aleks2
Guest
Дык,
select ROUND( RAND()*500, 0 )

видится наиболее соответствующим описанию вариантом.
16 апр 14, 18:59    [15892611]     Ответить | Цитировать Сообщить модератору
 Re: Сумма с лимитом  [new]
Шыфл
Member

Откуда: Прага
Сообщений: 776
Glory
Шыфл
Т.е должно получиться что-то вроде:

Типа если сумма за месяц превышает лимит, то показывать лимит,а не сумму ?


Нет, нужно показывать сумму платежей за месяц с ограничением на остаток лимита. Т.е. лимит всегда постоянный, и когда он превышается, платежи не идут в сумму.

в примере:
платежи за февраль 250, лимит 500, показываем всё, остаток лимита 250
платежи за март 450, остаток лимита 250, показывает 250, остаток лимита 0
платежи за апрель 50, остаток лимита 0, показываем 0

Т.е. как это сделать курсором - понятно, как это сделать по-другому, совершенно не понятно
16 апр 14, 19:07    [15892639]     Ответить | Цитировать Сообщить модератору
 Re: Сумма с лимитом  [new]
Добрый Э - Эх
Guest
Шыфл,

накопительный итог + CASE.
17 апр 14, 06:39    [15894154]     Ответить | Цитировать Сообщить модератору
 Re: Сумма с лимитом  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3394
Нарастающий итог (running total).

В поиске / ФАКе тыщу раз обсасывалось уже.
17 апр 14, 07:46    [15894197]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить