Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
Всем привет! Имеется 1-ая таблица контракта: - № контракта; - Период контракта (Количество месяцев, например = 3 месяца) - Сумма контракта (например = 2100); Имеется 2-ая таблица контракта: - № контракта; - Оплаты по контракту (в разнобой, возможны и частичные оплаты, сумма всех оплат, к примеру = 950); Списание происходит от 1-го к последнему месяцам! Нужно получить примерно такой результат, например № контракта Период Сумма Оплачено Долг ----------------- ---------------- -------- ------------ ------ К001 1-ый месяц 700 700 0 К001 2-ой месяц 700 250 450 К001 3-ий месяц 700 0 700 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 12:49 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
vuginetВсем привет! Имеется 1-ая таблица контракта: - № контракта; - Период контракта (Количество месяцев, например = 3 месяца) - Сумма контракта (например = 2100); Имеется 2-ая таблица контракта: - № контракта; - Оплаты по контракту (в разнобой, возможны и частичные оплаты, сумма всех оплат, к примеру = 950); Списание происходит от 1-го к последнему месяцам! Нужно получить примерно такой результат, например № контракта Период Сумма Оплачено Долг ----------------- ---------------- -------- ------------ ------ К001 1-ый месяц 700 700 0 К001 2-ой месяц 700 250 450 К001 3-ий месяц 700 0 700 Оплаты велись в разные времена, и частично, например: 150 200 100 250 90 160 --------- Сумма = 950 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 12:54 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
vuginet, и к какому решению вы пришли? Что не получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 12:56 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
TaPaKvuginet, и к какому решению вы пришли? Что не получается? делю всё на 3 не то получается ( 2100/3 950/3 Долг ----------- -------- -------- 700 316,67 383,33 700 316,67 383,33 700 316,67 383,33 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:01 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
vuginetTaPaKvuginet, и к какому решению вы пришли? Что не получается? делю всё на 3 не то получается ( 2100/3 950/3 Долг ----------- -------- -------- 700 316,67 383,33 700 316,67 383,33 700 316,67 383,33 нужно, чтобы первые 700 закрыли бы - 1-ый месяц, если имеются ещё оплаты, то 950-700=250 === 250 списались бы со 2-го месяца и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:05 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
Нужны таблицы: Контракт (уже есть, только сумму отсюда выкинуть, считать ее из следующей таблицы) CONTR_ID№ контрактаПериод контракта=Количество месяцев111233 Суммы контрактов по месяцам SUM_CONTR_BY_MONTH_IDCONTR_IDСумма111700211700311700 Оплаты (номер контракта отсюда выкинуть) PAYMENT_IDСумма77950 Связь Оплаты и Суммы контрактов по месяцам PAYMENT_IDSUM_CONTR_BY_MONTH_IDСумма771700772250 Тогда видно, что одна оплата может распределяться по нескольким месяцам контракта, и один месяц контракта может оплачиваться по частям многими оплатами. А алгоритм заполнения таблицы связи уже должен смотреть, насколько оплачена каждая позиция контракта, и куда распределять очередную оплату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:31 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
TaPaKvuginet, и к какому решению вы пришли? Что не получается? select t1.номер, t1.период, t1.сумма, sum(t2.оплата)/3 from table1 t1, table2 t2 where t1.контракт_ID= t1.контракт_ID group by t1.номер, t1.период, t1.сумма ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:35 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
Cane Cat FisherНужны таблицы: Контракт (уже есть, только сумму отсюда выкинуть, считать ее из следующей таблицы) CONTR_ID№ контрактаПериод контракта=Количество месяцев111233 Суммы контрактов по месяцам SUM_CONTR_BY_MONTH_IDCONTR_IDСумма111700211700311700 Оплаты (номер контракта отсюда выкинуть) PAYMENT_IDСумма77950 Связь Оплаты и Суммы контрактов по месяцам PAYMENT_IDSUM_CONTR_BY_MONTH_IDСумма771700772250 Тогда видно, что одна оплата может распределяться по нескольким месяцам контракта, и один месяц контракта может оплачиваться по частям многими оплатами. А алгоритм заполнения таблицы связи уже должен смотреть, насколько оплачена каждая позиция контракта, и куда распределять очередную оплату. Спасибо Вам преогромное за аналитику, но это я знаю, и у меня точно так, как Вы говорите. Но как на MS SQL select написать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:39 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
vuginetCane Cat FisherНужны таблицы: Контракт (уже есть, только сумму отсюда выкинуть, считать ее из следующей таблицы) CONTR_ID№ контрактаПериод контракта=Количество месяцев111233 Суммы контрактов по месяцам SUM_CONTR_BY_MONTH_IDCONTR_IDСумма111700211700311700 Оплаты (номер контракта отсюда выкинуть) PAYMENT_IDСумма77950 Связь Оплаты и Суммы контрактов по месяцам PAYMENT_IDSUM_CONTR_BY_MONTH_IDСумма771700772250 Тогда видно, что одна оплата может распределяться по нескольким месяцам контракта, и один месяц контракта может оплачиваться по частям многими оплатами. А алгоритм заполнения таблицы связи уже должен смотреть, насколько оплачена каждая позиция контракта, и куда распределять очередную оплату. Спасибо Вам преогромное за аналитику, но это я знаю, и у меня точно так, как Вы говорите. Но как на MS SQL select написать? как Вот этот результат заполучить? № контракта Период Сумма Оплачено Долг ----------------- ---------------- -------- ------------ ------ К001 1-ый месяц 700 700 0 К001 2-ой месяц 700 250 450 К001 3-ий месяц 700 0 700 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 13:46 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
vuginet, долг накопительный что-ли? почему не 1150 в последнем месяце ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:03 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
TaPaKvuginet, долг накопительный что-ли? почему не 1150 в последнем месяце Не накопительный, но на руки выданная таблица оплат имеетя, а плательщик как хочет платит, никаких пений не начисляется, тупо платит сколько хочет, и, несмотря на его частичные платежи, месяц закрывается, если полностью оплата произведена. А лишняя часть оплаты начинает гасить следующий в очереди не погашённый месяц. Т.е., закрыл первый 700 перешёл на следующий. Проблема моя состоит в том, что я не могу рекурсивно показать в select-е таблично - результат. Программно могу, но как через select показать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:31 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
vuginetTaPaKvuginet, долг накопительный что-ли? почему не 1150 в последнем месяце Не накопительный, но на руки выданная таблица оплат имеетя, а плательщик как хочет платит, никаких пений не начисляется, тупо платит сколько хочет, и, несмотря на его частичные платежи, месяц закрывается, если полностью оплата произведена. А лишняя часть оплаты начинает гасить следующий в очереди не погашённый месяц. Т.е., закрыл первый 700 перешёл на следующий. Проблема моя состоит в том, что я не могу рекурсивно показать в select-е таблично - результат. Программно могу, но как через select показать? почему долг 700, если в третьем месяце долг 1150 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:33 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
TaPaKvuginetпропущено... Не накопительный, но на руки выданная таблица оплат имеетя, а плательщик как хочет платит, никаких пений не начисляется, тупо платит сколько хочет, и, несмотря на его частичные платежи, месяц закрывается, если полностью оплата произведена. А лишняя часть оплаты начинает гасить следующий в очереди не погашённый месяц. Т.е., закрыл первый 700 перешёл на следующий. Проблема моя состоит в том, что я не могу рекурсивно показать в select-е таблично - результат. Программно могу, но как через select показать? почему долг 700, если в третьем месяце долг 1150 Вы правы, если посмотреть в суммарном виде на долг, то это = 1150, мне не нужно SUM(долг) вытащить, это не проблема, нужно таблично показать Сумма Оплачено Долг 700 700 0 700 250 450 700 0 700 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 14:36 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
vuginet, причёсывать лень, всё сводится к теме накопительного итога Код: 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 15:29 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
TaPaKvuginet, причёсывать лень, всё сводится к теме накопительного итога Код: 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. Спасибо большое, что-то вроде этого, я подгоню всё это под свой селект, а потом сообщу, Спасибо Преогромное!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 15:34 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
vuginetTaPaKvuginet, причёсывать лень, всё сводится к теме накопительного итога Код: 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. Спасибо большое, что-то вроде этого, я подгоню всё это под свой селект, а потом сообщу, Спасибо Преогромное!!! Чуточку поправил, Код: 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. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2019, 15:59 |
|
||
|
списания средств ежемесячно
|
|||
|---|---|---|---|
|
#18+
vuginet, А можно как-то While select использовать? Типа этого: Оплата=SUM(таблица оплат) while Оплата> 0 begin case when (Оплата > 0) and (Оплата > Долг) then Долг=0 else Долг=Долг - Оплата Оплата=Оплата - Долг end end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2019, 16:17 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39786670&tid=1688112]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 280ms |
| total: | 464ms |

| 0 / 0 |
