<root>
<StatementDetail>
<PolicyNo>POL-01</PolicyNo>
<name>john</name>
<InstallmentNo>0</InstallmentNo>
<NetAmount>250.00</NetAmount>
<NetAmountTotal>250.00</>
<AmountTotal>300.00</AmountTotal>
</StatementDetail>
<StatementDetail>
<PolicyNo>POL-01</PolicyNo>
<name>john</name>
<InstallmentNo>1</InstallmentNo>
<NetAmount>50.00</NetAmount>
<NetAmountTotal>50.00</NetAmountTotal>
<AmountTotal>300.00</AmountTotal>
</StatementDetail>
<StatementDetail>
<PolicyNo>POL-02</PolicyNo>
<name>ravi</name>
<InstallmentNo>0</InstallmentNo>
<NetAmount>270.00</NetAmount>
<NetAmountTotal>500.00</NetAmountTotal>
<AmountTotal>500.00</AmountTotal>
</StatementDetail>
<StatementDetail>
<PolicyNo>POL-02</PolicyNo>
<name>ravi</name>
<InstallmentNo>0</InstallmentNo>
<NetAmount>230.00</NetAmount>
<NetAmountTotal>500.00</NetAmountTotal>
<AmountTotal>500.00</AmountTotal>
</StatementDetail>
</root>
};
Мой код:
#xquery(for $x in /root/StatementDetail
let $PolicyNo := fn:upper-case($x/PolicyNo)
let $Name := $x/Name
let $InstNo := $x/InstallmentNo
let $NetAmt := $x/NetAmount
let $NetAmtTot := $x/NetAmountTotal
let $AmtTot := $x/AmountTotal
return <AgencyStatementDetail>
<PolicyNo>{$PolicyNo}</PolicyNo>
<Name>{$Name}</Name>
<InstallmentNo>{$InstNo}</InstallmentNo>
<NetAmount>{$NetAmt}</NetAmount>
<NetAmountTotal>{$NetAmtTot}</NetAmountTotal>
<AmountTotal>{$AmtTot}</AmountTotal>
</AgencyStatementDetail>)
Выходные данные имеют вид:
Policy Name InstNo Amount
POL-01 John 0 250
Total 250
1 50
Total 50
Total POL-01 300
POL-02 Ravi 0 270
Total 270
0 230
Total 500
Total POL-02 500
И требуемый выход: POL-02 Ravi 0270 0230 Всего 500 Всего POL-02 500
Я хочу, чтобы вывод был основан на instNo, он не должен повторяться снова, итого должно появиться только один раз. Как я сделаю это, чтобы получить такой вывод. Пожалуйста, помогите написать XQuery.