|
|
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
Очень надо сохранить в таблицу (новую) записи UNION-запроса. Оптимально конечно было бы сразу задать в нем "INTO Table1", но так ведь INTO не работает же с UNION, а выдает мне результирующий набор записей доступный только для чтения... я в печали...остается что-ли только ручками создавать новую таблицу и сохранять в нее полученный от запроса recordset..??? (кстати может у кого уже есть универс. процедурка, которая это делает?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2003, 10:42 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
сделай ещё один селект над юнионом .... и его ИНТО пуляй ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2003, 10:49 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2003, 10:50 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
Даа, до такого я не додумался, большой сэнкс... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2003, 11:00 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
Вспомнил... Access номинально же не позволяет разместить SELECT в инструкции FROM, т.е. - "SELECT * FROM (SELECT * FROM Table1)". Тут где-то уже обсуждался такой трабл и кто-то рассказал о недокументированной возможности Access, чтобы прошел такой запрос, необходимо добавить точку после скобок: "SELECT * FROM (SELECT * FROM Table1). WHERE и т.д.". Так вот я об этом вспомнил только тогда когда запустил свой код, а он не заработал и я полез в конструктор запросов посмотреть что там навоялось. Код был такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Последний запрос (qryF101_3) не выполнился, но, как видно по коду, я по совету Саныча присваивал SQL инструкции запросам напрямую через свойство: dbs.QueryDefs("qryF101_3").SQL и мне стало интересно че там Access присвоил, я ожидал там увидеть свою строку, но когда открыл конструктор запросов (в режиме SQL), то увидел что Access мой запросик переделал по своему разумению... Вот это то и есть самое интересное!!! Запрос мой не выполнился всего лишь из-за ошибки в запросе qryF101_1, после ее исправления все пошло, но посмотрите как мой запрос qryF101_3 переделал Access, чтобы он запустился: Код: plaintext 1. 2. 3. 4. 5. 6. Вернее конечно он сразу не запустился, но после того как уберете это мусор - ]. AS [%$##@_Alias] на что-нибудь другое, хоть так - ]. AS [ddd];, то все заработает. Обратите внимание, что кроме незабвенной точки после скобок(п.1), сами скобки необходимо сделать квадратные(п.2) и обязательно добавить после точки(п.3) AS [ля-ля]. Без любого из этих 3 пунктов запрос не выполнится, это справедливо для Access2002, для других не знаю. Вообщем, прикольно что таким образом удалось узнать некоторые недокументированные возможности Access SQL, надеюсь что и Вам рассказал что-то новое и полезное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2003, 14:24 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
Думаю неплохо бы внести указанные дополнения по вложенным селектам в пост: недокументированные фичи - /topic/47491\r \r пусть наши гуру рассмотрят этот вопрос и в принципе я думаю из него уже можно делать FAQ "недокументированные фичи " - пусть лучше под таким заголовком болтается, так его легче и приятнее искать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2003, 14:37 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
ЛП уже описывал это тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2003, 14:40 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
Да, я читал этот топик, только тогда не понял, что кроме точки важно чтобы еще скобки квадратные были, у меня с обычными он не захотел работать.. Причем несмотря на заявление, у меня Access2002 работает только с этой жесткой порнографией, а ни как иначе. Есть предположение, что access все такие запросы к выше указанной жесткой порнаграфии приводит... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2003, 14:55 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
К вопросу об оптимизации: В результате тестов определили, что: 1. запуск двух запросов на создания двух таблиц и и спользование их же потом в третьем запросе, выполняется гораздо быстрее чем 2. изменение двух сохраненных запросов (dbs.QueryDefs("qryF101_1").SQL = srtSQL1) и указания потом их в третьем запросе Усредненные результаты замеров по вариантов (в миллисек.): 1. 5530 2. 10914 Почти в два раза. Видно изменение сохраненного запроса и соответственно его перекомпиляция и дальнейшие выполнение выходит ощутимее медленее, чем простой запрос на создание временных таблиц и их последующее использование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2003, 18:20 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
В продолжении к вопросу о вложенных селектов в FROM. Код: plaintext 1. Вот такой еще маленький нюансик, такой запрос не пойдет: Код: plaintext 1. - т.е. двойные квадратные скобки в данном случае не поддерживаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2003, 18:11 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
в моем топике от 25 сен 03, 10:50 где-то есть квадратные скобки ? запрос вполне отвечает синтаксису sql89 и sql92 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2003, 09:34 |
|
||
|
Создать таблицу на основе UNION-запроса
|
|||
|---|---|---|---|
|
#18+
Да это в моем есть... просто когда обсуждали эту недокументированную возможность этот маленький нюансик тогда не прозвучал, а я вот сейчас в него уперся\r \r надо дополнить что-ли наш FAQ по недокумент. возможностям, тот топик вроде пока до FAQ не дошел: /topic/47491 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2003, 10:24 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32275063&tid=1679134]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
141ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 438ms |

| 0 / 0 |
