базы dbf
В запросе выбираются все обученные в справочнике Обучение (подчиненный справочнику Контрагенты) по заданному учителю за период. Все выполняется.
|SELECT
| СпрО.ID as [Элемент $Справочник.Обучение] ,
| СпрО.DESCR as Обученный,
| СпрО.SP9630 as НомерУровня,
| СпрО.SP9623 as Уровень,
| СпрО.SP9628 as ДатаВыдачи,
| Спр.ID as [ЭлементОрг $Справочник.Контрагенты] ,
| Спр.Descr as Организация,
| Спр.SP9262 as Обслуж,
| $Спр.КатегорияНагрузка as [Кат $Перечисление.я_КатегорияНагрузка],
| СпрП.ID as [ЭлементП $Справочник.Пользователи],
| ICASE(ALLTRIM(СпрО.SP9625)<>'0',СпрП.Descr,' ') as ФИООбуч1,
| СпрП2.ID as [ЭлементП2 $Справочник.Пользователи],
| ICASE(ALLTRIM(СпрО.SP9626)<>'0',СпрП2.Descr,' ') as ФИООбуч2
|FROM
| $Справочник.я_Обучение as СпрО
| LEFT JOIN $Справочник.я_Контрагенты as Спр ON Спр.ID =СпрО.Parentext
| LEFT JOIN $Справочник.Пользователи СпрП ON СпрП.ID = СпрО.SP9625
| LEFT JOIN $Справочник.Пользователи СпрП2 ON СпрП2.ID = СпрО.SP9626
|Where
| СпрО.SP9664=0
| AND СпрО.ISMARK=' '
| AND СпрО.SP9628 BETWEEN :НачДата~~ AND :КонДата~~
| AND (ALLTRIM(СпрО.SP9625)=ALLTRIM(Substr(:ВыбОбучающие~,5)) OR ALLTRIM(СпрО.SP9626)=ALLTRIM(Substr(:ВыбОбучающие~,5)))";
Запрос.УстановитьТекстовыйПараметр("НачДата",НачДата);
Запрос.УстановитьТекстовыйПараметр("КонДата",КонДата);
Запрос.УстановитьТекстовыйПараметр("ВыбОбучающие",ВыбОбучающие);
Но при этом в найденных организациях надо найти количество всех обученных.
добавляю в запрос
|LEFT JOIN
|(
| SELECT COUNT(*)
| FROM $Справочник.Обучение as СпрОб
| WHERE
| СпрОб.Parentext=СпрО.Parentext
|)
обработка выплевывает CommandText::Execute(): Syntax error.
Просмотрела в поиске темы с агрегатными функциями, но так ничего и не получилось. Подскажите пожалуйста.