2

単一の行で集計関数を使用し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);
4

1 に答える 1

1

そこで、WHERE 句に GROUP BY を追加し、SELECT ステートメントで XMLELEMENT(“Date”, trunc(b.r_modify_date) を変更しました。

新しいクエリは次のとおりです。

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);
于 2015-10-07T20:19:35.670 に答える