Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вопрос по циклам
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть таблицаЮр лицо КодТТ SKU Дата начала Дата окончания Дата Отгрузки Продажи00111 00001 SKU1 01.01.2018 10.01.2018 01.01.2018 5 400111 00001 SKU1 01.01.2018 10.01.2018 02.01.2018 0 100111 00001 SKU1 01.01.2018 10.01.2018 03.01.2018 0 000111 00001 SKU1 01.01.2018 10.01.2018 04.01.2018 5 200111 00001 SKU2 01.01.2018 10.01.2018 01.01.2018 0 300111 00001 SKU2 01.01.2018 10.01.2018 02.01.2018 0 000111 00001 SKU2 01.01.2018 10.01.2018 03.01.2018 0 000111 00001 SKU2 01.01.2018 10.01.2018 04.01.2018 3 1 Нужно получить такую таблицуЮр лицо КодТТ SKU Дата начала Дата окончания Дата Отгрузки Продажи ПродажиОбраб 00111 00001 SKU1 01.01.2018 10.01.2018 01.01.2018 5 4400111 00001 SKU1 01.01.2018 10.01.2018 02.01.2018 0 1100111 00001 SKU1 01.01.2018 10.01.2018 03.01.2018 0 0000111 00001 SKU1 01.01.2018 10.01.2018 04.01.2018 5 2200111 00001 SKU2 01.01.2018 10.01.2018 01.01.2018 0 3 0 00111 00001 SKU2 01.01.2018 10.01.2018 02.01.2018 0 0000111 00001 SKU2 01.01.2018 10.01.2018 03.01.2018 0 0000111 00001 SKU2 01.01.2018 10.01.2018 04.01.2018 3 11 Логика заключается в том, чтобы по каждому Юр лицу + ТТ + SKU поле ПродажиОбраб равен полю Продажи , но учитывает с того дня, где присутствует первая отгрузка. Тут получается надо пробегаться по циклам, то есть по датам по соответствующим Юр лицу + ТТ + SKU . 1. Скажите, для данной задачи каким образом можно пробежаться по циклам? 2. Если я правильно понимаю, если использовать WHILE, то добавляем только строки в таблицу, но не пробегаем по строкам. Верно? SQL-запрос. Исходные данные Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 11:32 |
|
||
|
Вопрос по циклам
|
|||
|---|---|---|---|
|
#18+
ferzmikk, циклы не нужны. всё и так сделать можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 11:47 |
|
||
|
Вопрос по циклам
|
|||
|---|---|---|---|
|
#18+
ferzmikk, Посмотрите про оконные функции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2018, 11:53 |
|
||
|
Вопрос по циклам
|
|||
|---|---|---|---|
|
#18+
Установлена Microsoft SQL Server Management 2008. Код: sql 1. или Код: sql 1. такие записи в этой версии не будут работать. Если писать без этих оконных функции Код: 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. 54. 55. 56. 57. 58. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2018, 08:17 |
|
||
|
Вопрос по циклам
|
|||
|---|---|---|---|
|
#18+
ferzmikkНо для большой выборки такой способ подтормаживает А чудесной кнопки нетути. 1. Индексы. 2. Расчет и сохранение в таблице. Обновление таблицы по мере необходимости. 3. Материализация через индексированные View. ЗЫ. Ты ниповеришь, оконные функции "как-то так и считают". Так что, производительность на оконных не сильно превосходит "по старинке". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2018, 08:30 |
|
||
|
Вопрос по циклам
|
|||
|---|---|---|---|
|
#18+
ferzmikkЛогика заключается в том, чтобы по каждому Юр лицу + ТТ + SKU поле ПродажиОбраб равен полю Продажи , но учитывает с того дня, где присутствует первая отгрузка. Это первый пункт условия. Есть еще и другие условия пунктов, где нужно пробегаться по дням, потом в случае необходимости возвращаются к предыдущим датам, но не с первого. Несколько циклов. Несколько переменных. Условия бывают меняются. И получится, что запрос будет сложно корректировать. И вот хотел узнать, возможно ли сделать так: по каждому Юр лицу + ТТ + SKU в пользовательскую функцию передается массив или таблица из трех полей Дата, Отгрузки,Продажи (Оранжевый цвет) и возвращает массив по соответствующим строкам (голубой цвет). Аналогично для последующих Юр лицу + ТТ + SKU . Пользовательская функция была бы написана на VB.Net или C#. Возможно ли так? Если да то, как? Юр лицо КодТТ SKU Дата начала Дата окончания Дата Отгрузки ПродажиПродажиОбраб00111 00001 SKU1 01.01.2018 10.01.2018 01.01.2018 5 4400111 00001 SKU1 01.01.2018 10.01.2018 02.01.2018 0 1100111 00001 SKU1 01.01.2018 10.01.2018 03.01.2018 0 0000111 00001 SKU1 01.01.2018 10.01.2018 04.01.2018 5 2200111 00001 SKU2 01.01.2018 10.01.2018 01.01.2018 0 30 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2018, 09:16 |
|
||
|
Вопрос по циклам
|
|||
|---|---|---|---|
|
#18+
ferzmikkЮр лицо КодТТ SKU Дата начала Дата окончания Дата Отгрузки ПродажиПродажиОбраб00111 00001 SKU1 01.01.2018 10.01.2018 01.01.2018 5 4400111 00001 SKU1 01.01.2018 10.01.2018 02.01.2018 0 1100111 00001 SKU1 01.01.2018 10.01.2018 03.01.2018 0 0000111 00001 SKU1 01.01.2018 10.01.2018 04.01.2018 5 2200111 00001 SKU2 01.01.2018 10.01.2018 01.01.2018 0 30Так правильнее Юр лицо КодТТ SKU Дата начала Дата окончания Дата Отгрузки ПродажиПродажиОбраб00111 00001 SKU1 01.01.2018 10.01.2018 01.01.2018 5 4400111 00001 SKU1 01.01.2018 10.01.2018 02.01.2018 0 1100111 00001 SKU1 01.01.2018 10.01.2018 03.01.2018 0 0000111 00001 SKU1 01.01.2018 10.01.2018 04.01.2018 5 22 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2018, 10:31 |
|
||
|
Вопрос по циклам
|
|||
|---|---|---|---|
|
#18+
ferzmikk, Вы должны пронумеровать отгрузки и сравнивать нарастающий итог продаж с отгрузкой. Как только продаж планируется абсолютно больше, чем отгрузок, прекращать продажи по текущему номеру продаж. Не нужны никакие циклы и переменные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2018, 12:41 |
|
||
|
Вопрос по циклам
|
|||
|---|---|---|---|
|
#18+
Владислав Колосовferzmikk, Вы должны пронумеровать отгрузки и сравнивать нарастающий итог продаж с отгрузкой. Как только продаж планируется абсолютно больше, чем отгрузок, прекращать продажи по текущему номеру продаж. Не нужны никакие циклы и переменные . Я говорю, что есть и другие пункты условия. До этого реализовывал в экселе с помощью VBA. Код был не простым, но подтормаживал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2018, 12:58 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39589678&tid=1690436]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
64ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 258ms |
| total: | 431ms |

| 0 / 0 |
