Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть таблица расходов: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. таблица платежей Код: sql 1. 2. 3. 4. 5. 6. 7. и таблица связи платежа и расхода(какую часть документа закрывает платеж) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Помогите написать запрос который отобразит просроченную задолженность на каждый день, исходя из того, что отсрочка платежа составляет 3 дня ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:09 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
желательно без использования курсоров и циклов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:09 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
RuslanSharipovжелательно без использования курсоров и циклов а на каком этапе проблемы? алгоритм подсчета не выходит или его реализация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 17:06 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
Shakill, сам алгоритм ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 17:13 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
RuslanSharipovShakill, сам алгоритм объединяете приход и расход в один датасет с разными знаками, причем расход сдвигаете на три дня вперед, ключевое поле - id расхода потом считаете нарастающий итог в разрезе id расхода с группировкой по дате далее на каждую дату суммируете только отрицательные значения итогов - это и будет общая просроченная задолженность на эту дату запрос получится довольно компактный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 17:16 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
Shakill, видимо я неправильно понял, потому что результат далек от правильного Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 17:28 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
RuslanSharipov, почти. в cte надо знаки для сумм наоборот поставить и по дате неравенство должно быть нестрогое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 17:46 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
RuslanSharipov, Вам нужен календарь, в каждую клетку которого положите нарастающую сумму расходов и нарастающую сумму платежей (только с учетом смещения в три дня). Разница в клетке и будет долгом. Календарь заранее создайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 17:47 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
Shakill,все равно не то Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 18:08 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, Ваш вариант на двух примерах отработал правильно, попробую еще на паре случаев Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 18:13 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
RuslanSharipovShakill,все равно не то да, поспешил, календарь нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 18:38 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, А как насчёт подсчёта количества дней просрочки(максимальное значение) на каждую дату? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 21:05 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
RuslanSharipov, хм... Задача станет тривиальной, если как-то пронумеровать каждый период долга, а потом подсчитать количество дней по каждому номеру. За один проход сразу не представляю, как всё сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 22:56 |
|
||
|
расчет задолженности
|
|||
|---|---|---|---|
|
#18+
Вообщем, если не ошибся Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. дополняем нулевым приходом каждый расход(от даты расхода + 3дня до последней даты(можно заменить датой когда расход полностью перекроется)) и считаем нарастающий итог прихода для каждого расхода. Выбираем те строки где разница между суммой расхода и нарастающим итогом приходов больше нуля, считаем разницу в днях между датами, и берем максимальное по каждому дню. Может кому пригодится. Правда незнаю как на длинном промежутке с большими движениями отработает запрос,попробую вместо cte'ешек темповые таблицы с индексами чтобы ускорить. Может есть предложения как посчитать по другому? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2018, 12:12 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39582401&tid=1690542]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 233ms |
| total: | 427ms |

| 0 / 0 |
