25.07.2019, 15:48 | #1 |
Участник
|
AX2009. Insert_Recordset идёт построчно
В чём ошибка?
Объявляю одну таблицу как временную и, чтобы ускорить, через insert_recordset записываю сгруппированные данные с подсчитанной суммой. X++: MyTable myTable, newMyTable; ; newMyTable.setTmp(); ttsBegin; insert_recordset newMyTable (field1, field2, field3, Qty) select field1, field2, field3, sum(Qty) from myTable group by field1, field2, field3 where field4 == NoYes::Yes; ttsCommit; На таблице нет метода insert() Последний раз редактировалось SuperStar88; 25.07.2019 в 15:52. |
|
25.07.2019, 15:55 | #2 |
Участник
|
Ошибка в том, что вы делаете таблицу временной.
__________________
// no comments |
|
|
За это сообщение автора поблагодарили: S.Kuskov (2), SuperStar88 (1). |
25.07.2019, 16:13 | #3 |
Участник
|
|
|
25.07.2019, 16:45 | #4 |
Участник
|
Цитата:
Групповые операции поддерживает СУБД над своими объектами, таблицами, представлениями. Если результат нужно передать за пределы СУБД, то о каких групповых операциях можно говорить? Временные таблицы в версиях Аксаты до AX2012 реализованы на уровне приложения, а не в БД. В версиях начиная с AX2012 появились временные таблицы уровня базы данных. Там наверное можно реализовать заполнение такой таблицы при помощи групповой операции. |
|
|
За это сообщение автора поблагодарили: SuperStar88 (1). |
26.07.2019, 07:17 | #5 |
Участник
|
Цитата:
X++: while select Field1, Field2, Field3, sum(Qty) from myTable group by Field1, Field2, Field3 where Field4 == NoYes::Yes { ... } X++: INSERT INTO MyNewTable (Field1, Field2, Field3, Qty) SELECT Field1, Field2, Field3, Sum(Qty) FROM MyTable A WHERE A.DataAreaId = 'dat' AND A.Field4 = 1 GROUP BY Field1, Field2, Field3
__________________
// no comments |
|
26.07.2019, 08:50 | #6 |
Участник
|
Цитата:
У меня есть Номенклатура, Бюджетный код, Заводской заказ и куча Цехов, а для расчётов мне цеха не нужны. Также надо вставить туда дополнительные данные. Ладно, что-то что-то другое думать, как оптимизировать |
|