Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть SQL-запрос. 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. 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. Клиент Код юр лица Код ТТ Код продукции Дата Цена Цена пред Маркировка скидкиКлиент Код юр лица1 Код ТТ1 SKU1 2014-01-01 100 NULL 0Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-02 100 100 0Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-03 80 100 1 Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-04 80 80 0 Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-05 100 80 0 Не обращайте внимание что название полей на русском языке, это для примера и для понятности. А также не придаем значение базовой цены. Просто сравниваем с предыдущей строкой. На четвертой строке вместо 0 должен быть 1. А для этого нужно вытащить предыдущее значение вычисляемого поля Маркировка . То есть написать типа так SQL-Запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 1. Как вытягивать предыдущее значение вычисляемого поля? 2. Order By не работает во вложенном запросе. В рабочем коде используются табличные выражения и вложенные запросы. Как можно обойти эту проблему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 15:47 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkКак вытягивать предыдущее значение вычисляемого поля?LEAD() ferzmikkOrder By не работает во вложенном запросе.ORDER BY в промежуточных итогах используется только в том случае, когда влияет на список записей выходного набора. Без ограничения количества возвращаемых записей простая сортировка на набор не влияет - а потому игнорируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 16:12 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
AkinaferzmikkКак вытягивать предыдущее значение вычисляемого поля?LEAD() LEAD вытягивает из последующей строки, а надо из предыдущей. А также по текущей строке при расчете вычисляемого поля [Маркировка скидки] нужно вытянуть рассчитанное значение этого же поля предыдущей строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 16:48 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
AkinaferzmikkOrder By не работает во вложенном запросе.ORDER BY в промежуточных итогах используется только в том случае, когда влияет на список записей выходного набора. Без ограничения количества возвращаемых записей простая сортировка на набор не влияет - а потому игнорируется. Поскольку во вложенном запросе я использую оконную функция Lag, то актуально делать сортировку, если я не ошибаюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 16:52 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkПоскольку во вложенном запросе я использую оконную функция Lag, то актуально делать сортировку, если я не ошибаюсь.LAG() имеет свой собственный класс ORDER BY и не зависит от внешнего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 16:57 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkAkinaпропущено... LEAD() LEAD вытягивает из последующей строки, а надо из предыдущей. А также по текущей строке при расчете вычисляемого поля [Маркировка скидки] нужно вытянуть рассчитанное значение этого же поля предыдущей строки. А тут как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 17:24 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkА тут как?делать в два прохода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 17:53 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Тут расчет получается последовательным как в excel. На скриншоте для ячейки P14 нужно выйти на P13, для P15 нужно выйти на P14. Никак получается. Как написать запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 19:50 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkКак написать запрос?"рекурсивно", в смысле рекурсивный запрос :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 20:11 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
courtferzmikkКак написать запрос?"рекурсивно", в смысле рекурсивный запрос :) Код: 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. КлиентКод юр лицаКод ТТКод продукцииДатаЦенаidЦена предМаркировка скидкиКлиентКод юр лица1Код ТТ1SKU12014-01-011001NULL0КлиентКод юр лица1Код ТТ1SKU12014-01-0210021000КлиентКод юр лица1Код ТТ1SKU12014-01-038031001КлиентКод юр лица1Код ТТ1SKU12014-01-04804801КлиентКод юр лица1Код ТТ1SKU12014-01-051005800 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 20:30 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
court, Спасибо, буду разбирать! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 20:37 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#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. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2018, 22:08 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
invm, Если добавить еще строки в исходных данных Код: 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. Клиент Код юр лица Код ТТ Код продукции Дата Цена Цена пред (Отсутствует имя столбца)Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-01 100 NULL 0Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-02 100 100 0Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-03 80 100 1Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-04 80 80 1Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-05 80 80 0 Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-06 80 80 0 Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-07 100 80 0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 07:50 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
court, При таком запросе Код: 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. Клиент Код юр лица Код ТТ Код продукции Дата Цена id Цена пред Маркировка скидкиКлиент Код юр лица1 Код ТТ1 SKU1 2014-01-01 100 1 NULL 0Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-02 100 2 100 0Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-03 80 3 100 1 Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-06 100 4 80 1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 08:09 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
court, И еще, при использовании рекурсии, когда много строк, то запрос намного дольше выполянется. Возможно ли как то ускорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 08:11 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkcourt, И еще, при использовании рекурсии, когда много строк, то запрос намного дольше выполянется. Возможно ли как то ускорить? 165 строк - 2 мин 36 сек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 08:44 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkcourt, При таком запросе Код: 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. Клиент Код юр лица Код ТТ Код продукции Дата Цена id Цена пред Маркировка скидкиКлиент Код юр лица1 Код ТТ1 SKU1 2014-01-01 100 1 NULL 0Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-02 100 2 100 0Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-03 80 3 100 1 Клиент Код юр лица1 Код ТТ1 SKU1 2014-01-06 100 4 80 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. [Цена пред которая используется в расчете] - это для понимания, что там вообще происходит, если нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 09:57 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
court, В условном примере правильно работает, а в рабочем - не правильно. Не могу понять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 12:19 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 12:30 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkcourt, В условном примере правильно работает, а в рабочем - не правильно. Не могу понять. Разобрался. В другой части кода надо было не так писать Код: sql 1. а так Код: sql 1. и из за этого неправильно сортировался, следовательно, неправильно маркировались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 12:32 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Из за рекурсии подтормаживает сильно. Возможно ли как то ускорить выгрузку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 14:31 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkИз за рекурсии подтормаживает сильно. Возможно ли как то ускорить выгрузку? 65000 строк. Обрабатывает более 2 часов. Может быть в ON еще связку указать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.04.2018, 16:24 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Обнаружил не учтенный момент. 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. 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. Результат запросаКлиент Код юр лица Код ТТ Код продукции Дата Цена id Цена пред Маркировка скидки Цена пред кот исполь в расчКлиент1 Код юр лица1 Код ТТ1 SKU1 2014-01-01 100 1 100 0 NULLКлиент1 Код юр лица1 Код ТТ1 SKU1 2014-01-02 80 2 80 1 100Клиент1 Код юр лица1 Код ТТ1 SKU1 2014-01-03 80 3 80 1 80Клиент1 Код юр лица1 Код ТТ1 SKU1 2014-01-04 80 4 80 1 80Клиент1 Код юр лица1 Код ТТ1 SKU1 2014-01-05 100 5 100 0 80Клиент1 Код юр лица1 Код ТТ1 SKU1 2014-01-06 100 6 100 0 100Клиент1 Код юр лица1 Код ТТ1 SKU2 2014-01-01 50 7 50 1 100Клиент1 Код юр лица1 Код ТТ1 SKU2 2014-01-02 100 8 100 0 50Клиент1 Код юр лица1 Код ТТ1 SKU2 2014-01-03 80 9 80 1 100Клиент1 Код юр лица1 Код ТТ1 SKU2 2014-01-04 80 10 80 1 80Клиент1 Код юр лица1 Код ТТ1 SKU2 2014-01-05 100 11 100 0 80Клиент1 Код юр лица1 Код ТТ1 SKU2 2014-01-06 100 12 100 0 100Клиент1 Код юр лица1 Код ТТ2 SKU1 2014-01-01 60 13 60 1 100Клиент1 Код юр лица1 Код ТТ2 SKU1 2014-01-02 100 14 100 0 60Клиент1 Код юр лица1 Код ТТ2 SKU1 2014-01-03 80 15 80 1 100Клиент1 Код юр лица1 Код ТТ2 SKU1 2014-01-04 80 16 80 1 80Клиент1 Код юр лица1 Код ТТ2 SKU1 2014-01-05 100 17 100 0 80Клиент1 Код юр лица1 Код ТТ2 SKU1 2014-01-06 100 18 100 0 100 Если на следующей строке другая группа, то есть другое SKU, другая ТТ, то предыдущую цену и предыдущую маркировку смотреть не нужно. Для этой же строки в поле Маркировка скидки сразу возвращает ноль. Как правильно дописать запрос? И еще. В поле Цена пред отображается текущая цена, но не предыдущая. Почему так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 11:42 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikk, Код: sql 1. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 11:58 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Еще и быстрее будет выполняться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 11:59 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Kopelly, Я правильно понимаю, что поле [Цена пред которая используется в расчете] можно смело брать как предыдущая цена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 12:21 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikk, В конечном результате [Цена пред которая используется в расчете] - цена предыдущего шага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 12:29 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Kopelly, В конечном итоге не сортируется. Получается надо так писать 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. 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. 86. 87. 88. 89. 90. Или так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 13:27 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Kopellyferzmikk, Код: sql 1. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. KopellyЕще и быстрее будет выполняться Перевел на рабочий код, только быстрее не стало, а наоборот. Будто где то упустили запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 14:20 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
35 строк - 4 мин 40 сек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 14:21 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Рабочий код 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. 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. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. Как можно еще оптимизировать или уже никак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 14:45 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikk, через времянку эту свою TempTable1 сделай А дальше уже ЦТЕ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 14:48 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
courtferzmikk, через времянку эту свою TempTable1 сделай А дальше уже ЦТЕ Я правильно понимаю, что TempTable1 толкать непосредственно в таблицу базы данных, и потом cte толкать в другую таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 14:54 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
courtferzmikk, через времянку эту свою TempTable1 сделай А дальше уже ЦТЕ Даже не так К этому "месту" твоего кода Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ты должен прийти с "настоящей" (пусть временной) таблицей T (#T) и, по вкусу, индекс на [Клиент], [Код юр лица], [Код ТТ], [Код продукции], id ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 14:54 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikk, вот что-то типа этого должно быть Код: 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. 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. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 15:04 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
courtты должен прийти с "настоящей" (пусть временной) таблицей T (#T) и, по вкусу, индекс на [Клиент], [Код юр лица], [Код ТТ], [Код продукции], id Смысл использовать временную таблицу, если есть табличные переменные TempTable1 и cte? Неужели такой подход значительно увеличит время выгрузки, если используем рекурсию? Только вот такие временные таблицы я еще не создавал, следовательно, затрудняюсь в понимании как их делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 15:16 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
courtferzmikk, вот что-то типа этого должно быть Я правильно понимаю, что нужны еще отдельные запросы по созданию таких временных таблиц? Или в базе данных ничего создавать не нужно и базу данных якобы не трогаем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 15:18 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkcourtты должен прийти с "настоящей" (пусть временной) таблицей T (#T) и, по вкусу, индекс на [Клиент], [Код юр лица], [Код ТТ], [Код продукции], id Смысл использовать временную таблицу, если есть табличные переменные TempTable1 и cte? Неужели такой подход значительно увеличит время выгрузки, если используем рекурсию? Только вот такие временные таблицы я еще не создавал, следовательно, затрудняюсь в понимании как их делать.это не табличные переменные // затрудняюсь выше, полностью готовый скрипт на твоих данных добавь ещё в конце Код: sql 1. и запускай Будет не удовлетворительно по времени, - ещё с индексом можно "поиграться" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.04.2018, 15:22 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
court, А если сохранять не во временную таблицу, а в саму таблицу в базу данных (и она как бы и временная)? То вроде должно быть быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 10:34 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
В общем тормозит именно из за этого Код: sql 1. Как можно ускорить? Или все равно надо иcпользовать временную таблицу с индексами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 15:07 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkВ общем тормозит именно из за этого Код: sql 1. Как можно ускорить? Или все равно надо иcпользовать временную таблицу с индексами? И еще Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. В таблице Shipments 6 миллионов строк. Я думаю, что при отборе через WHERE подтормаживает сильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2018, 17:01 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
courtвыше, полностью готовый скрипт на твоих данных добавь ещё в конце Код: sql 1. и запускай Будет не удовлетворительно по времени, - ещё с индексом можно "поиграться" Разобрался с временными таблицами. Результат стал намного удовлетворительным. 6 млн строк за 40 минут. Дальше в коде после рекурсии используются последующие табличные переменные (без использования рекурсии). Если их заменить временными таблицами, то еще быстрее будет работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2018, 20:46 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
Присутствует поле [Маркировка по пред цене]. Теперь надо добавить поле [Маркировка по посл цене], который идет снизу вверх. 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. 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2018, 14:08 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
ferzmikkДальше в коде после рекурсии используются последующие табличные переменные (без использования рекурсии). Если их заменить временными таблицами, то еще быстрее будет работать? Заменил все табличные переменные на временные таблицы. Стало работать намного быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 15:57 |
|
||
|
Предыдущее значение вычисляемого поля
|
|||
|---|---|---|---|
|
#18+
court, Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2018, 15:58 |
|
||
|
|

start [/forum/topic.php?all=1&fid=46&tid=1689822]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
83ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
90ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 473ms |

| 0 / 0 |
