Here is an example.
Note(1): Tested on DB2 9.7 for LUW. So, some modifications may be necessary to run on earlier DB2 version.
Note(2): Add WHERE clause or use subquery, to select first 10 rows only.
Code:
------------------------------ Commands Entered ------------------------------
WITH
tbload(acct_no, rec_no, tran_date) AS (
VALUES
( 1, 1, '2009-10-01')
,( 1, 2, '2009-10-02')
,( 1, 3, '2009-10-05')
,( 1, 4, '2009-10-10')
,( 1, 5, '2009-10-13')
,( 2, 1, '2009-09-11')
,( 2, 3, '2009-09-21')
,( 2, 5, '2009-09-29')
,(100, 2, '2009-11-22')
,(100, 4, '2009-11-23')
,(100, 6, '2009-11-24')
,(100, 7, '2009-11-25')
)
SELECT
XML2CLOB(
XMLELEMENT (NAME "TABLE",
XMLATTRIBUTES ('1' AS "BORDER"),
XMLELEMENT(NAME CAPTION,'DEPARTMENT-EMPLOYEE TABLE'),
XMLELEMENT(NAME tr,
XMLFOREST( 'DEPT NO' AS TH
, 'DEPARTMENT' AS TH
, 'EMP NO' AS TH)
),
XMLAGG(
XMLELEMENT(NAME tr,
XMLFOREST( e.ACCT_NO AS td
, e.REC_NO AS td
, e.TRAN_DATE AS td)
)
ORDER BY
e.ACCT_NO
, e.REC_NO
)
)
)
FROM TBLOAD E
-- GROUP BY
-- GROUPING SETS (())
;
------------------------------------------------------------------------------
1
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<TABLE BORDER="1"><CAPTION>DEPARTMENT-EMPLOYEE TABLE</CAPTION><TR><TH>DEPT NO</TH><TH>DEPARTMENT</TH><TH>EMP NO</TH></TR><TR><TD>1</TD><TD>1</TD><TD>2009-10-01</TD></TR><TR><TD>1</TD><TD>2</TD><TD>2009-10-02</TD></TR><TR><TD>1</TD><TD>3</TD><TD>2009-10-05</TD></TR><TR><TD>1</TD><TD>4</TD><TD>2009-10-10</TD></TR><TR><TD>1</TD><TD>5</TD><TD>2009-10-13</TD></TR><TR><TD>2</TD><TD>1</TD><TD>2009-09-11</TD></TR><TR><TD>2</TD><TD>3</TD><TD>2009-09-21</TD></TR><TR><TD>2</TD><TD>5</TD><TD>2009-09-29</TD></TR><TR><TD>100</TD><TD>2</TD><TD>2009-11-22</TD></TR><TR><TD>100</TD><TD>4</TD><TD>2009-11-23</TD></TR><TR><TD>100</TD><TD>6</TD><TD>2009-11-24</TD></TR><TR><TD>100</TD><TD>7</TD><TD>2009-11-25</TD></TR></TABLE>
1 record(s) selected.
Formatted result:
<TABLE BORDER="1">
<CAPTION>DEPARTMENT-EMPLOYEE TABLE</CAPTION>
<TR><TH>DEPT NO</TH><TH>DEPARTMENT</TH><TH>EMP NO</TH></TR>
<TR><TD>1</TD><TD>1</TD><TD>2009-10-01</TD></TR>
<TR><TD>1</TD><TD>2</TD><TD>2009-10-02</TD></TR>
<TR><TD>1</TD><TD>3</TD><TD>2009-10-05</TD></TR>
<TR><TD>1</TD><TD>4</TD><TD>2009-10-10</TD></TR>
<TR><TD>1</TD><TD>5</TD><TD>2009-10-13</TD></TR>
<TR><TD>2</TD><TD>1</TD><TD>2009-09-11</TD></TR>
<TR><TD>2</TD><TD>3</TD><TD>2009-09-21</TD></TR>
<TR><TD>2</TD><TD>5</TD><TD>2009-09-29</TD></TR>
<TR><TD>100</TD><TD>2</TD><TD>2009-11-22</TD></TR>
<TR><TD>100</TD><TD>4</TD><TD>2009-11-23</TD></TR>
<TR><TD>100</TD><TD>6</TD><TD>2009-11-24</TD></TR>
<TR><TD>100</TD><TD>7</TD><TD>2009-11-25</TD></TR>
</TABLE>