Показать сообщение отдельно
Старый 08.07.2004, 08:16   #1  
chel is offline
chel
Участник
 
153 / 10 (1) +
Регистрация: 02.09.2003
Пожалуйста, помогите с запросом
Ситуация такая. Есть некоторая таблица JournalRequest, в которой есть поле UserCode.

Данные в таблице простые: для UserCode = '0001' одна запись, для '0002' - две и для '0003' - три.

Хотелось бы сделать запрос (с помощью Query или через АОТ), который бы выдавал количество записей для каждого UserCode, типа:

0001 1
0002 2
0003 3

Пытаюсь так:
PHP код:
    Query                query =  new Query();
    
QueryBuildDataSource qbd,qbd2;
    ;

    
qbd query.addDataSource(tableNum(JournalRequest));
    
qbd.OrderMode(OrderMode::GroupBy);
    
qbd.addSortField(fieldNum(JournalRequest,UserCode));
    
qbd.addSelectionField(fieldNum(JournalRequest,UserCode));

    
qbd2 qbd.addDataSource(tableNum(JournalRequest));
    
qbd2.OrderMode(OrderMode::GroupBy);
    
qbd2.addSortField(fieldNum(JournalRequest,UserCode));
    
qbd2.addSelectionField(fieldNum(JournalRequest,UserCode),SelectionField::Count);

    
qbd2.addLink(fieldNum(JournalRequest,UserCode),
           
fieldNum(JournalRequest,UserCode));
    
qbd2.joinMode(JoinMode::InnerJoin); 
Сейчас, после такого цикла по результатам:
PHP код:
    while (query.next())
    {
      
JournalRequest query.get(tableNum(JournalRequest),1);
      
jr2 query.get(tableNum(JournalRequest),2);

      
info(" " JournalRequest.UserCode " " jr2.UserCode);
    } 
Выдается следующее:

0001 2
0002 3
0003

Видимо, где-то косяк при соединении таблиц. Не могу понять где