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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.08.2007, 22:53   #6  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
эммм... не очень понимаю, почему вы отвергаете подход Ивана с курсором... Другого-то все равно ничего нет, если упираться именно во встроенный SQL.

Оператор select на встроенном SQL выбирает по одной записи (он не выбирает набор, как обычный SQL, который можно сразу всем набором куда-то передать дальше). Для прохода по всем записям, удовлетворяющим условиям where или join'ам, после первого select'a используется оператор next до тех пор, пока не кончится набор записей, либо вместо select сразу используется конструкция while select. В любом случае записи выбираются друг за другом в некотором цикле. Поэтому у вас должен быть этот самый "зазор" между записями, в течение которого вы и сможете сосчитать все свои функции от дат (какие-то полезные функции дат вроде есть в классе Global).

Я далек от мысли, что у вас написан какой-то свой движок, который в качестве параметра съедает строку на внутреннем SQL и возвращает обратно сразу весь набор, скрывая цикл в себе так, что вы не можете никак вмешаться в его выполнение со своими дополнительными вычислениями.

В любом случае никаких вычислений (агрегаты, получаемые при помощи group by, не в счет), а также вызовов функций во встроенном select делать нельзя по определению. Ведь выбираемая из реальной таблицы запись помещается в переменную типа запись той же структуры, что и сама таблица. Поэтому при выполнении оператора select A, B from Table1 значения из полей A и B очередной записи таблицы будут помещены в поля A и B табличной переменной Table1. Аксапта не даст вам выполнить оператор select A, B, A+B from Table1, потому что у табличной переменной Table1 нет ячейки для хранения выражения A+B.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
использовать PostgreSQL в приложениях, разработанных для работы с MS SQL. otkudao DAX: Администрирование 2 14.03.2008 11:41
Dynamics AX: SQL Server, Heart of Dynamics AX Blog bot DAX Blogs 0 13.07.2007 18:00
Агрегатные функции встроенного SQL Jab Straight DAX: Программирование 7 28.06.2007 23:30
Как в Аксапта создать аналог функции MS SQL ? stavteam DAX: Программирование 5 15.12.2004 17:16
Есть ли функции работы со строками? kostas DAX: Программирование 2 13.05.2004 11:50

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

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

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