25.09.2009, 11:32 | #1 |
Участник
|
insert recordset join таблицы без вывода поля
день добрый всем,
как заставить работать следующее X++: insert recordset tempTBL (A,B,C) select A,B,C from T1 join T2 where T2.date > D1 Мне из Т2 данных ненадо, она только для условия(й). Как заджойнить без полей? Ведь join T2 = join select * from T2
__________________
The Variable men power. |
|
25.09.2009, 11:39 | #2 |
Участник
|
Сделать exists join. Тогда будут только поля Т1
|
|
25.09.2009, 11:53 | #3 |
Участник
|
спасибо, я про него как то даже забыл
__________________
The Variable men power. |
|
25.09.2009, 12:05 | #4 |
Участник
|
вопрос еще один, почему если целевая таблица TmpTbl временная, то клиент вылетает с треском.
Меняю на постоянную все работает.
__________________
The Variable men power. |
|
25.09.2009, 12:17 | #5 |
Участник
|
Вопрос обсуждался здесь
__________________
Sergey Nefedov |
|
25.09.2009, 12:20 | #6 |
Участник
|
Наверное просто insert_recordset еще до конца не выверен MS . В случае использования временной таблицы использование insert_recordset теряет смысл и пожно просто сделать цикл по таблице источнику со вставкой во временную. Временная таблица это не временная таблица SQL, о ней сам SQL даже не знает. Поэтому сделать полноценный запрос типа insert into... select на стороне SQL система все равно не сможет. А значит у себя в ядре делает все тет же цикл.
Так что почему падает не знаю, но менять на цикл можно смело без потери производительности. |
|
25.09.2009, 12:39 | #7 |
Участник
|
я думал АХ использует именно механизм базы даных для времененных таблиц.
А что разумней (быстрее, правильней, бог знает что), для пары тысяч записей из двух селектов. 1. сделать свою нормальную таблицу и использовать инсерт рекордсет? 2. циклом перебирать в временную таблицу 3. сделать мап и вставить туда Далее данные нужно сгруппировать с суммами и выкинуть в эксель.
__________________
The Variable men power. |
|
25.09.2009, 14:15 | #8 |
Участник
|
Постоянные таблицы для временного хранения используются крайне редко. Только в том случае, если доказана несостоятельность двух других способа. Меп - это чистая память. Поэтому небольшие ограниченные объемы данных можно гнать через него. Это в том случае, если точно известно ограниченность этих объемов. Если данных очень много или точно количество назвать сложно, то используется временная таблица. Временная таблица физически расположена на диске, поэтому всю память съесть не сможет. А в случае с Меп это реально. Зато Меп гораздо быстрее.
Так что выбирать Вам. Если делается отчет в Ексель, то можно предположить, что пользователь не станет туда выводить миллионы записей, тем более что кол-во строк ограничено 64к. Так что можно использовать меп. А вот для всяких импортов/экспортов более желательна временная таблица. |
|
|
За это сообщение автора поблагодарили: Varmen (1). |
Теги |
insert_recordset, join |
|
|