|
|
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Задачка Кажется, элементарная, но решить не смог. Пожалуйста, помогите. Заранее спасибо. Условие Есть две таблицы: список поставок и список оплат. Поставки (Дата datetime , Сумма money ) Код: plaintext 1. 2. 3. Оплаты (Дата datetime , Сумма money ) Код: plaintext 1. 2. 3. Нужно Составить запрос, который выдаст распределение оплат по соответствующим поставкам при условии, что первыми оплачиваются поставки, произведенные ранее. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2002, 15:37:14 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Откуда следует, что оплата от 02.09 раскидывается в пропорции 400 на 1-ю поставку, 800 - на 2-ю, 500 - на 3-ю (при том, что 2-я и 3-я поставки произошли позже даты платежа)? Вы говорите "распределение оплат по соответствующим поставкам". Я, честно говоря, никакого соответствия между оплатами и поставками здесь не вижу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2002, 15:51:54 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Уточняю некорректно сформулированную задачку: Нужно распределить полученные оплаты по произведенным поставкам в хронологическом порядке, т.е. сначала оплачиваются более ранние поставки, а затем более поздние. При этом возможны как ситуации предоплаты (утром деньги — вечером стулья), так и ситауции постоплаты (утром стулья — вечером деньги). Кроме того, возможно отсутствие одного из двух, тогда результат запроса будет пустым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2002, 16:12:35 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
А как у Вас решается вопрос соответствия оплат и поставок и номенклатурного справочника? Т.е. что-то вроде ID товара я в Ваших таблицах не вижу... Или это сводные таблицы по датам? Уточните вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2002, 16:43:10 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Спасибо за уточняющий вопрос. Идентификаторы товаров и контрагентов и др., которые разумеется присутствуют в реальных таблицах, намеренно убраны с целью упрощения задачи. Полагаю, что если удастся решить задачку в таком, наиболее простом виде, добавить распределение по объектам аналитического учета труда не составит. Если это удобнее, можно считать представленные исходные таблицы сводными по датам. Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2002, 16:57:07 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Наверняка гуры вроде SergSuper или Glory решат это все за один запрос, ну я так себе гура, поэтому вот мой заведомо неоптимальный вариант: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2002, 17:41:16 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Спасибо, Дед Маздай! Вероятнее всего, придется на подобном варианте и остановиться. Уважаемые читатели и писатели форума! Если Вы хотя-бы смутно представляете, как можно решить задачку одним запросом, но Вам лень заниматься написанием текста,— подскажите хотя бы идею, — экспериментами сам займусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2002, 20:25:14 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Александр! Для того чтобы вам сделать запрос вам необходимо два ID: ID клиента и ID документа на поставку товара, потом в зависимости от того что вы хотите получить в результате (какую форму) вам будет сделать это легко ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2002, 23:33:06 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Кошкинсон тебе во всяком случае придется эти ID сделать для идентификации а потом можешь цепляться за них или курсором или updat-ом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 01:20:51 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Спасибо, Nick_K, но… 1. В приведенном примере для упрощения задачи, а вернее для уточнения ее предмета намеренно убраны упоминания об отдельных клиентах и документах. Условимся, что существует один единственный клиент, а в сутки возможна только одна поставка и одна оплата; таким образом даты поставок и оплат можно считать первичными ключами. Аналитику потом навернем — если удастся решить задачу принципиально. 2. Хотелось бы, если это вообще возможно, обойтись только запросом и не использовать программные циклы, курсоры и временные таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 02:00:31 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Что-то намутил, не знаю только будет ли правильно работать при всех вариантах в Поставках и Оплатах. Если "выскачат" значения 0.00013 и 0.00023, то значит не правильно и придется использовать курсор. Можно даже попробовать объединить все это в один запрос Код: plaintext 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. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 2Дед Маздай Да ладно, Вы иногда такую информацию и код выдаете в форум, что просто заглядение :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 03:40:15 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
2 glory... если бы это были просто качели... ;)) а если на одну поставку было 5 оплат или на 5 поставок одна оплата? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 12:04:10 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Спасибо, Glory. В реальной базе решение работает до неприличного быстро. Но, как назло, вариантов «на одну поставку 5 оплат» и «на 5 поставок одна оплата» оказалось слишком много. Придется использовать курсор… :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 13:33:50 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
на самом деле легче повесить тригер на таблицу ОПЛАТА и вести дополнительную таблицу уже в готовом виде.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 17:55:36 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
да и еще думаю метод г-на Glory можно использовать рекурсивно..... но нужно подумать.... а сейчас лень..... ;)) разделять множества...... завтра обмыслю.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 17:59:52 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Да, нашлось несколько неточностей. Получилось так Код: plaintext 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. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. Перепробовал различные варианты (см. закомментированные строки). Не скажу, что все потому как запутался под конец. Но варианты с "перекосом" в ту и дуругую сторону были. Вроде бы как работает. Кстати и сам case получился логично/симметричным. Если найдте "нерабочую" последовательность Supplies/Paymentsб то кидайте в форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 18:55:23 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
снимаю шляпу.... оч наглядно... можно и без временных таблиц.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 19:18:18 |
|
||
|
Помогите составить запрос: Распределение сумм оплат по поставкам
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо, Glory! Задачка, кажется, решена. Пока был в офф-лайне, пришлось правда использовать более громоздкий вариант: Код: plaintext 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. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. Glory и Дед Маздай, еще раз большое вам спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2002, 23:26:22 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32052215&tid=1820135]: |
0ms |
get settings: |
7ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
52ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 189ms |
| total: | 323ms |

| 0 / 0 |
