|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
Всем здравствуйте... Задача меня уже доконала... Может кто делал что-нить аналогичное? Есть список товарных остатков в виде: Код: plaintext 1. 2. 3. 4. 5.
Есть список расходов в виде Код: plaintext 1. 2. 3.
Задача: Вычесть из остатков расходы (вычтенное количество писать в Col3 таблицы остатков) Причем: 1) вычитать надо сначала из тех строк, у которых дата прихода раньше. 2) необходимо накапливать в PriceRel первой таблицы (остатков) сумму вычтенных из нее расходов (Price*Amount) второй таблицы... 3) если остатков не хватает для вычета, нужно создать новую строчку в таблице остатков, и в PriceRel тоже хранить сумму вычетов (Price*Amount) Итог: в данном случае должно получиться что-то типа... Код: plaintext 1. 2. 3. 4. 5. 6.
У меня без курсоров никак... Но на реальных данных (100 000) торомозит. Если кто нибудь подскажет, как сделать БЕЗ КУРСОРОВ, будет просто здорово. Если нет, значит нет... Спасибо. P.S. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:33 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
тынц для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:39 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2Алексей2003 Беглый взгляд по ссылке... автор для простоты считаем, что код товара в накладной втречается единожды - т е нет отгрузки одного и того же товара по разным ценам (или уже усреднили, к примеру) задача - построить расходную накладную, отгружая сначала ранние партии без курсоров получилось вот что У меня это не допускается, скорее наоборот, подразумевается что цены разные, и суммы реализации нужно хранить в RelPrice... Да еще и строчки когда надо добавлять... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:44 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2 Алексей2003: В продолжение темы, вопрос такой ,а почему все временные таблы называют курсорами. По-моему курсор это Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:45 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
Proga2 Алексей2003: В продолжение темы, вопрос такой ,а почему все временные таблы называют курсорами. По-моему курсор это Код: plaintext 1. 2. 3.
Кто называет? Временные таблы - это временные таблы, табличные переменные - это табличные переменные, курсоры - это, как ни странно, курсоры. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:48 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
Тогда где здесь курсор Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:52 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
а нету там курсора. прочитал человек правила и задал вопрос для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:54 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2 Proga: господин Andy154 как раз хочет БЕЗ курсоров и любезно подготовил временную таблицу с тестовыми данными. всм бы по-учится ещё вопросы задаватьу него ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:55 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2Proga Курсоры используются в решении проблемы... Свое решение я публиковать не стал, во-первых потому, что оно использует курсоры, а во-вторых для того, чтобы задать вопрос, я существенно упростил задачу и структуры таблиц... В моем посте: 1) Описание входных данных 2) Описание выходных данных решение пропущено :-). Собственно поэтому я и задаю вопрос "Как лучше сделать?" уважаемому форму... P.S. Не нужно устраивать цирк. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:56 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2Andy154 вечером буит решение, если найду и меня нихто не опредит :) для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 14:57 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2Алексей2003 Да хоть в понедельник, лишь бы было :-)!!! 2Luchkin Dmitry Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 15:17 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
Вот вам 2 решения аналогичной задачи с поставками и оплатами Код: 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. 85.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 16:11 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2Glory Вот только этого автор3) если остатков не хватает для вычета, нужно создать новую строчку в таблице остатков, и в PriceRel тоже хранить сумму вычетов (Price*Amount) в предлагаемых решениях скорее всего нет. Относительно последнего почти уверен, когда-то разбирал, но давно. Но за основу принять можно ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 16:24 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2Glory Спасибо! Попробую разобраться... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 17:17 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2Дмитрий Валуев Да, действительно, строчки не добавляет :-). Но за основу принял... Пока топик не закрываю... Может быть, будут еще варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.08.2004, 18:24 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
Это без циклов, курсоров и т.п. (база MS-SQL приложена) Несколько изменены таблицы: Расходы. Добавлено [DateIn] - иначе невозможно установить порядок исчисления расходов. [ID] - это добавлено по привычке (не используется) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Запасы. Добавлено [ID] - это добавлено для идентификации строк. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Вспомогательные виды Код: 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.
----------------------------- Основные виды Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.08.2004, 10:18 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#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.
а вот без вспомогательных колонок величину pricerel как вычислить не знаю... получается только средняя сумма по каждому виду товара... для спящего время бодрствования равносильно сну ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2004, 08:52 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2aleks2 Спасибо! Разбираюсь... 2Алексей2003 Здорово! А чем могут помочь доп. столбцы? Необязательно код писать, подкиньте идейку... Код Glory для меня крутоват оказался :-(. Без комментариев никак... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.08.2004, 10:58 |
|
Можно ли сделать без курсоров?
|
|||
---|---|---|---|
#18+
2Glory В тот раз обошелся, но встала новая проблема... Все-таки разобрался с Вашим примером :-) В нем есть один момент, который на мою ситуацию распространить нельзя. В Вашем примере возможно провести оплату ДО отгрузки, а мне расход ДО прихода никак нельзя :-(. Пытался модифицировать но не вышло... Нет ли еще каких нибудь способов? P.S. Поиском по "Фифо" пользовался. Прочитал все. Единого мнения не нашел... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.12.2004, 11:10 |
|
|
Start [/forum/search_topic.php?do_search=1&post_sort=desc&author_mode=author_liked&author=%D0%9D%D0%B0%D1%80%D0%BE%D0%B4%D0%BD%D1%8B%D0%B9%20%D0%90%D0%B9%D1%82%D0%B8%D1%81%D1%82]: |
0ms |
get settings: |
2ms |
get forum list: |
9ms |
get settings: |
2ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
19ms |
get topic data: |
11ms |
get first new msg: |
2ms |
get forum data: |
1ms |
get page messages: |
23ms |
get tp. blocked users: |
0ms |
others: | 10548ms |
total: | 10633ms |
0 / 0 |