Показать сообщение отдельно
Старый 10.07.2017, 17:58   #7  
Pokersky09 is offline
Pokersky09
Участник
 
43 / 60 (3) ++++
Регистрация: 15.11.2012
Адрес: Turkey
Без создания View можно.
Программно задавать ограничения можно на уровне Query.

Пример с SUM отладить не удалось (за пару минут), но Count точно работает.

X++:
static void HavingJob(Args _args)
{
    Query                   query;
    QueryBuildDataSource    datasource;
    QueryHavingFilter       havingFilter;
    
    QueryRun                queryRun;
    LedgerJournalTable      LedgerJournalTable;

    query = new Query();
    
    datasource = query.addDataSource(tableNum(LedgerJournalTable));
    
    datasource.addSelectionField(fieldNum(LedgerJournalTable,   RecId), SelectionField::Count);
    datasource.addGroupByField(fieldNum(LedgerJournalTable,     JournalType));
    
    havingFilter = query.addHavingFilter(datasource, fieldStr(LedgerJournalTable, JournalType), AggregateFunction::Count);
    havingFilter.value('=1');

    queryRun = new QueryRun(query);
    while (queryRun.next())
    {
        LedgerJournalTable = queryRun.getNo(1);
        
        info(strFmt('Group %1: %2', LedgerJournalTable.JournalType, LedgerJournalTable.RecId));
    }
}