|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
Ну как же нет описания задачи? Вот оно было уже в виде первичного решения: serg0265Вот как надо оформлять в SQL решение. Может кому пригодится: Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Куда уж конкретнее. Вопрос тоже обозначен: можно ли не выполнять Z несколько раз, а использовать результат один раз без временной таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:37 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
serg0265Куда уж конкретнее. Вопрос тоже обозначен: можно ли не выполнять Z несколько раз, а использовать результат один раз без временной таблицы? Ответ тоже конкрентнее некуда - никак. Только это ответ на выбранный вами способ решения неизвестной задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:37 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
Glory, Займитесь какими-нибудь другими темами. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:39 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
serg0265, знаете, вы когда к доктору приходите, так же поступаете - на предложение раздеться, для осмотра, закатываете один рукав, а когда доктор говорит, что в таком случае ему проблематично провести правильную диагностику и назначить лечение, вы ему говорите что он хамло и бездарность? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:40 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
serg0265Glory, Займитесь какими-нибудь другими темами. Помедитируй в одиночестве. Дня три. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2014, 10:41 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
Как только появилась возможность публикую окончательное решение задачи, которое позволяет ускорить первоначальный способ в несколько раз. И которое не требует явного определения для таблицы-результата. "Принципиальная схема" основана на использовании временных таблиц ## ( а.они позволяют сохранять в них записи без предварительной декларации; б.##, а не # т.к. последние прекращают свое существование после окончания процедуры, а нам нужен результат и после окончания процедуры). Вот схема: 1. Создаем процедуру (не функцию, т.к. последняя для возврата результата требует явной декларации таблицы. И еще важно: в функциях невозможно использование временных таблиц, а в процедурах - допустимо) 2. Исполняем нужный "тяжелый" запрос Z0 и сохраняем его в ##T1 примерно так: Код: sql 1. 2. 3.
3. Окончательный результат формируем в этой же процедуреи сохраняем в другую временную таблицу примерно так: Код: sql 1. 2. 3. 4. 5. 6.
4. Удаляем теперь как ненужную первую временную таблицу ##Z: Код: sql 1.
и завершаем процедуру 5. Теперь ее следует просто вызывать из любого приложения. Например, из свойств внешнего подключения Excel такими образом: Код: sql 1. 2. 3.
Конечно опущены всякие детали и проверки. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 10:00 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
serg0265Конечно опущены всякие детали и проверки. например, одновременный запуск из двух коннектов Инитресно будет понаблюдать за их "борьбой" по созданию и удалению общей таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 10:04 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
serg0265, а ROLLUP так и не был осилен или чем-то не устроил? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 10:07 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
Shakill, Спасибо за предложение. Честно говоря, "руки не дошли" разобраться. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 10:23 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
Shakill, Вы сподвигли меня проанализировать это решение. Но конкретно в моем случае оно оказалось неприменимо из-за более сложной логики консолидации подзапросов. Хотя если бы сложилось, то это решение было бы более изящным. Решение же с временными таблицами - более универсально. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 14:26 |
|
Подзапрос в UNION
|
|||
---|---|---|---|
#18+
serg0265Но конкретно в моем случае оно оказалось неприменимо из-за более сложной логики консолидации подзапросов. Потому, что вы пребываете в уверенности, что ваш способ единственный для решения задачи. Которую вы держите в секрете ... |
|||
:
Нравится:
Не нравится:
|
|||
08.10.2014, 14:32 |
|
|
start [/forum/topic.php?fid=46&msg=38769972&tid=1700455]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
165ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
others: | 239ms |
total: | 510ms |
0 / 0 |