AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.09.2009, 11:32   #1  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
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  
corner77 is offline
corner77
Участник
 
18 / 25 (1) +++
Регистрация: 28.04.2009
Сделать exists join. Тогда будут только поля Т1
Старый 25.09.2009, 11:53   #3  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
спасибо, я про него как то даже забыл
__________________
The Variable men power.
Старый 25.09.2009, 12:05   #4  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
вопрос еще один, почему если целевая таблица TmpTbl временная, то клиент вылетает с треском.
Меняю на постоянную все работает.
__________________
The Variable men power.
Старый 25.09.2009, 12:17   #5  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Вопрос обсуждался здесь
__________________
Sergey Nefedov
Старый 25.09.2009, 12:20   #6  
corner77 is offline
corner77
Участник
 
18 / 25 (1) +++
Регистрация: 28.04.2009
Наверное просто insert_recordset еще до конца не выверен MS . В случае использования временной таблицы использование insert_recordset теряет смысл и пожно просто сделать цикл по таблице источнику со вставкой во временную. Временная таблица это не временная таблица SQL, о ней сам SQL даже не знает. Поэтому сделать полноценный запрос типа insert into... select на стороне SQL система все равно не сможет. А значит у себя в ядре делает все тет же цикл.
Так что почему падает не знаю, но менять на цикл можно смело без потери производительности.
Старый 25.09.2009, 12:39   #7  
Varmen is offline
Varmen
Участник
 
190 / 13 (1) ++
Регистрация: 02.10.2007
я думал АХ использует именно механизм базы даных для времененных таблиц.
А что разумней (быстрее, правильней, бог знает что), для пары тысяч записей из двух селектов.

1. сделать свою нормальную таблицу и использовать инсерт рекордсет?
2. циклом перебирать в временную таблицу
3. сделать мап и вставить туда

Далее данные нужно сгруппировать с суммами и выкинуть в эксель.
__________________
The Variable men power.
Старый 25.09.2009, 14:15   #8  
corner77 is offline
corner77
Участник
 
18 / 25 (1) +++
Регистрация: 28.04.2009
Постоянные таблицы для временного хранения используются крайне редко. Только в том случае, если доказана несостоятельность двух других способа. Меп - это чистая память. Поэтому небольшие ограниченные объемы данных можно гнать через него. Это в том случае, если точно известно ограниченность этих объемов. Если данных очень много или точно количество назвать сложно, то используется временная таблица. Временная таблица физически расположена на диске, поэтому всю память съесть не сможет. А в случае с Меп это реально. Зато Меп гораздо быстрее.
Так что выбирать Вам. Если делается отчет в Ексель, то можно предположить, что пользователь не станет туда выводить миллионы записей, тем более что кол-во строк ограничено 64к. Так что можно использовать меп. А вот для всяких импортов/экспортов более желательна временная таблица.
За это сообщение автора поблагодарили: Varmen (1).
Теги
insert_recordset, join

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Некорректно отображается значение текстового поля их приджойненой таблицы в вэб-гриде... glibs DAX: Программирование 0 20.04.2009 19:13
Глюки в Query с разными типами Join (в т.ч. NonExistsJoin) к одной таблице gl00mie DAX: Программирование 10 14.02.2007 13:22
Название поля и таблицы... NetBus DAX: Программирование 1 08.07.2005 16:45
Как зная название поля таблицы узнать текст, который прописан в Label? Hidden DAX: Функционал 1 03.06.2005 13:52
Не устанавливается EDT для поля таблицы Filip DAX: Программирование 3 29.10.2004 13:52

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:23.