ORA-00937: ни одна групповая функция (XMLAGG)
Я использовал XMLAGG
агрегатная функция в одной строке и я продолжаю получать код ошибки ORA-00937. Зачем?
Структура отчета:
<Forms>
<Year>2015</Year>
<Month>September</Month>
<Date>2015-09-22</Date>
<Form>A1</Form>
<Form>B4</Form>
…
</Forms>
Мое выбранное утверждение:
SELECT XMLSERIALIZE(
DOCUMENT XMLROOT(
XMLELEMENT("Forms",XMLATTRIBUTES('http://www.w3.org/2001/XMLSchema- instance' AS "xmlns:xsi"),
XMLELEMENT("Year", b.Year),
XMLELEMENT("Month", b.Month),
XMLELEMENT("Date", b.r_modify_date),
XMLAGG(XMLELEMENT"Form",b.docnum))
),
)
)
FROM xml_bill b
where trunc(b.R_MODIFY_DATE) =trunc(sysdate);
1 ответ
Решение
Поэтому я добавил GROUP BY в предложении WHERE и изменил XMLELEMENT("Date", trunc(b.r_modify_date) в операторе SELECT
Вот новый запрос:
SELECT XMLSERIALIZE(
DOCUMENT XMLROOT(
XMLELEMENT("Forms",XMLATTRIBUTES('http://www.w3.org/2001/XMLSchema-instance' AS "xmlns:xsi"),
XMLELEMENT("Year", b.Year),
XMLELEMENT("Month", b.Month),
XMLELEMENT("Date", trunc(b.R_MODIFY_DATE)),
XMLAGG(
XMLELEMENT("Form", b.DOCNUM)
)
),
)
)
FROM xml_bill b
where
trunc(b.R_MODIFY_DATE) =trunc(sysdate)
GROUP BY b.Year, b.Month,trunc(b.R_MODIFY_DATE);