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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.05.2008, 15:35   #1  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Насколько я знаю, опция HAVING в Axapta не поддерживается. Ни в каком виде. Единственное "штатное" решение - это сканировать всю выборку и вручную исключать записи удовлетворяющие условию HAVING.

Хотя, условие count(*)>1 еще можно попробовать решить через NOT EXISTS, но условие sum(VTr.AmountCur)=0 в общем случае без HAVING не решается...
Старый 13.05.2008, 15:51   #2  
kalex_a is offline
kalex_a
Участник
Аватар для kalex_a
Самостоятельные клиенты AX
MCBMSS
 
160 / 19 (1) ++
Регистрация: 26.11.2007
Адрес: Казахстан
Я еще вот накопал типа прямого обращения базе, но выдает такую ошибку.
Ошибка:
Сбой запроса на разрешение типа "SqlStatementExecutePermission".
(S)\Classes\SqlStatementExecutePermission\demand
(S)\Classes\Statement\executeQuery

вот код, мож кто знает в чем проблема

X++:
static void Job_VendReport()
{
    UserConnection  con = new UserConnection();
    Statement       stmt = con.createStatement();
    ResultSet  resultSet;
    SqlStatementExecutePermission ssep;
    str sqlExpression ="select VTr.AccountNum,VT.Name,VTr.RContractAccount,RT.RContractCode from VendTrans VTr "+
    "join vendtable VT on VT.AccountNum=VTr.AccountNum and VT.DataAreaId='dat' "+
    "left join RContractTable RT on RT.RContractAccount=VTr.RContractAccount and RT.DataAreaId='dat' "+
    "where VTr.DataAreaId='dat' and VTr.closed=''"+
    "group by VTr.AccountNum, VT.Name, VTr.RContractAccount,RT.RContractCode  having count(*)>1 and sum(VTr.AmountCur)=0 "+
    "order by RT.RContractCode";
    ;
    ssep =  new SqlStatementExecutePermission(sqlExpression);
    ssep.assert();
    resultSet = stmt.executeQuery(sqlExpression);
    while (resultSet.next())
    {
        info(resultSet.getString(1));
    }
}
Старый 30.03.2010, 14:09   #3  
E S V is offline
E S V
Участник
 
5 / 12 (1) ++
Регистрация: 24.01.2005
Адрес: Санкт-Петербург
stmt.executeQuery(sqlExpression) должно выполняться на сервере
Теги
executequery, query, sql, vendtrans, vendtransopen, запрос (query), как правильно

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Dynamics AX: Dynamics AX 2009 & SQL Server 2008 Blog bot DAX Blogs 0 10.06.2008 21:08
Dynamics AX: SQL Server, Heart of Dynamics AX Blog bot DAX Blogs 0 13.07.2007 18:00
aEremenko: Диагностика проблем при установке Microsoft Dynamics Ax 4.0 на Microsoft SQL Server 2005 Blog bot DAX Blogs 0 28.10.2006 16:01
Проблема с запросом Protey DAX: Программирование 7 10.07.2006 09:32
Помогите с SQL запросом malex DAX: Программирование 8 26.07.2005 13:43

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

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

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