|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
Добрый вечер)) есть процедура SP1, которая, получая на вход ID некой таблицы TABLE1, возвращает строго 1 запись, поля A, B, C, D. в процедуре SP2 необходимо выполнить усреднение рассчитанных параметров A, B, C, D за определенный период записей из TABLE1. Иными словами необходимо выполнить что-то типа Код: sql 1. 2. 3. 4. 5. 6. 7.
где :ID это массив записей, который вернул внешний SELECT Существует ли возможность передать подзапрос в параметр процедуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2017, 18:44 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
ЯНХНП! Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2017, 18:46 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
kaktus1983Иными словами необходимо выполнить что-то типа Нет, нужно позвать программиста, который умеет считать среднее не только с помощью avg(). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2017, 19:11 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Как решить задачу я знаю, и без avg тоже. Но хочу спросить, "Существует ли возможность передать подзапрос в параметр процедуры?" Чтоб процедура SP1 параметр ID получала подзапросом и возвращала набор данных, объедененный из последовательно выполненых SP1 с каждым ID из подзапроса ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2017, 19:23 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
kaktus1983Существует ли возможность передать подзапрос в параметр процедуры? нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2017, 19:33 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
m7m, не поможет. ему надо resultset передать как параметр процедуры. А резалтсетов в качестве переменных в ФБ нет. Есть курсоры, но это типа тот же фор селект, с последовательным (или нет) перебором записей по одной штуке. Чудится мне, что человек гланды через зад пытается удалить. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2017, 23:05 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
kaktus1983, Внешний select может вернуть список ID через запятую (см. LIST), а этот список потом уже парсится Парсим такой процедурой Код: 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.
Далее в процедуре делаем что-то подобное Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2017, 23:09 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
kdvЧудится мне, что человек гланды через зад пытается удалить. Просто дурная привычка с какого-нибудь MS SQL-я всё делать через процедуры... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2017, 23:10 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
kdvm7m, не поможет. ему надо resultset передать как параметр процедуры. А резалтсетов в качестве переменных в ФБ нет. Ну тогда использовать временную таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2017, 23:54 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
m7m, m7m Ну возможно EXECUTE STATEMENT поможет Вариант, хотя мне проще дополнительно в for select обенуть Шавлюк Евгений, Шавлюк Евгений Парсим такой процедурой Спасибо за вариант, рассмотрю Dimitry SibiryakovПросто дурная привычка с какого-нибудь MS SQL-я всё делать через процедуры... На мой взгляд процедуры - это удобно и красиво. Даже если использовать как сохраненные запросы и не более того. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 00:02 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
С "удобно и красиво" люди на форум не ходят. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 01:35 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
Уже все гранаты выдали? И екзекьют, и кривой лист. kaktus1983На мой взгляд процедуры - это удобно и красиво. Блендер - это тоже удобно и красиво. Но тесто им замешивать неудобно. "Всё процедурами" и "всё чистым sql" - это как холодная и горячая вода, надо смешивать в требуемой пропорции. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 09:42 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovНет, нужно позвать программиста, который умеет считать среднее не только с помощью avg(). можно и AVG, если GTT ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 12:22 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
kaktus1983если использовать как сохраненные запросы для этого VIEW есть, они оптимизатор не убивают ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 12:44 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
kdvkaktus1983Существует ли возможность передать подзапрос в параметр процедуры? нет. можно per-transaction GTT заполнять на каждую процедуру - свои входящие GTT, параметры в глобальных переменных - это моветон, но что делать ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 12:45 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
Ariochможно и AVG, если GTT AVG можно и без GTT, но аффтар же тогда укрепится в своей решимости натирать геморрой кривыми костылями. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 13:05 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
чтобы костыля были корявистее и кучнее - погрызть гранит в эту сторону если? Код: sql 1. 2. 3. 4. 5.
Так в лоб, наверное, не получится, но вот если бы SELECT позволял запрашивать из процедуры INPUT-параметры - JOIN ( SELECT * FROM SP1 (T.ID)) P ON P.INPUT_ID = T.ID ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 14:12 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
Мне вот интересно, что за вычисления такие в процедуре SP1 происходят, а то вдруг их можно в запросе сделать. Выборка из одной-единственной таблицы, даже соединять ничего не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 14:25 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
WildSeryМне вот интересно, что за вычисления такие в процедуре SP1 происходят, а то вдруг их можно в запросе сделать. Выборка из одной-единственной таблицы, даже соединять ничего не надо. WildSery, может и можно, оцените сами. Главная причина, вынесение кода в отдельную SP1, это то, что вычисления вызываются из различных мест БД, и при изменении алгоритма логично менять только в одном месте, в SP1. SP1 Код: 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. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 15:56 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
всю эту хрень построенную на if-ах заменить одним select-ом с case-ми Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 16:16 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
Мимопроходящийвсю эту хрень построенную на if-ах заменить одним select-ом с case-миЭдак ты замахнешься на святое, убрать нахрен широченную горизонтальную портянку, тогда и ифы с кейзами совсем не понадобятся. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 16:44 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
Мимопроходящий, мне кажется, гемор тут из-за дурацкой структуры таблиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 18:25 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
15.11.2017 18:25, kdv пишет: > мне кажется, гемор тут из-за дурацкой структуры таблиц. я так глубоко не ковырял. так, палочкой потыкал... (С) Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 18:27 |
|
Подзапрос в параметре процедуры
|
|||
---|---|---|---|
#18+
kaktus1983есть процедура SP1, которая, получая на вход ID некой таблицы TABLE1, возвращает строго 1 запись, поля A, B, C, D. в процедуре SP2 необходимо выполнить усреднение рассчитанных параметров A, B, C, D за определенный период записей из TABLE1. Иными словами необходимо выполнить что-то типа Код: sql 1. 2. 3. 4. 5. 6. 7.
где :ID это массив записей, который вернул внешний SELECT Существует ли возможность передать подзапрос в параметр процедуры? Компактный вариант решения: Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.11.2017, 23:37 |
|
|
start [/forum/topic.php?fid=40&msg=39553550&tid=1561334]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 319ms |
total: | 475ms |
0 / 0 |