Need help in counting
Posted: Thu Dec 11, 2008 10:28 pm
I have XML below, FOR EACH <ES_ID> I will have multiple <ID> in <EM_ES_MEASURE>
I want to count that ID's. I can also use STATUS, START_DATE, the counting will be same for these elemnts also.
I am using : <td><table><xsl:for-each select="EM_ES_MEASURE[count(. | key('mea-fact', concat(ES_ID, ' ', MAT_ID, ' ', START_DATE))[1]) = 1]">
<xsl:sort select="EM_MATERIAL_TEXT/NAME"/>
<xsl:sort select="START_DATE"/>
<tr>
<td name="Mea Material" align="center"><xsl:value-of select="EM_MATERIAL_TEXT/NAME"/></td>
<td name="Mea Date" align="center"><xsl:value-of select="START_DATE"/></td>
<td name="Mea Daily Ave" align="center"><xsl:value-of select="sum(../EM_ES_MEASURE[ES_ID = current()/ES_ID and START_DATE = current()/START_DATE and MAT_ID = current()/MAT_ID]/MES_AMOUNT) div count(../EM_ES_MEASURE[ES_ID = current()/ES_ID and START_DATE = current()/START_DATE and MAT_ID = current()/MAT_ID])"/></td>
<td name="Mea Unit" align="center"><xsl:value-of select="EM_UNIT/CODE"/></td>
<td><table>
<xsl:for-each select="EM_ESOURCE/EM_ES_MEASURE">
<td><xsl:value-of select="sum(./STATUS)"/></td>
</xsl:for-each></table>
</td>
How do I do that.
In the outpur file I am getting '0' If I use count, If I sum STATUS I am getting a huge total.
<EM_ES_MEASURE>
<ID>1401546</ID> <ES_ID>1017502</ES_ID> <MES_AMOUNT>13.515278</MES_AMOUNT>
<UNIT>1006561</UNIT>
<START_DATE>2007-01-14</START_DATE>
<STATUS>1</STATUS>
</EM_ES_MEASURE>
<EM_ES_MEASURE>
<ID>1401547</ID>
<ES_ID>1017502</ES_ID>
<MES_AMOUNT>13.546702</MES_AMOUNT>
<UNIT>1006561</UNIT>
<START_DATE>2007-01-14</START_DATE>
<STATUS>1</STATUS>
</EM_MATERIAL_TEXT>
I want to count that ID's. I can also use STATUS, START_DATE, the counting will be same for these elemnts also.
I am using : <td><table><xsl:for-each select="EM_ES_MEASURE[count(. | key('mea-fact', concat(ES_ID, ' ', MAT_ID, ' ', START_DATE))[1]) = 1]">
<xsl:sort select="EM_MATERIAL_TEXT/NAME"/>
<xsl:sort select="START_DATE"/>
<tr>
<td name="Mea Material" align="center"><xsl:value-of select="EM_MATERIAL_TEXT/NAME"/></td>
<td name="Mea Date" align="center"><xsl:value-of select="START_DATE"/></td>
<td name="Mea Daily Ave" align="center"><xsl:value-of select="sum(../EM_ES_MEASURE[ES_ID = current()/ES_ID and START_DATE = current()/START_DATE and MAT_ID = current()/MAT_ID]/MES_AMOUNT) div count(../EM_ES_MEASURE[ES_ID = current()/ES_ID and START_DATE = current()/START_DATE and MAT_ID = current()/MAT_ID])"/></td>
<td name="Mea Unit" align="center"><xsl:value-of select="EM_UNIT/CODE"/></td>
<td><table>
<xsl:for-each select="EM_ESOURCE/EM_ES_MEASURE">
<td><xsl:value-of select="sum(./STATUS)"/></td>
</xsl:for-each></table>
</td>
How do I do that.
In the outpur file I am getting '0' If I use count, If I sum STATUS I am getting a huge total.
<EM_ES_MEASURE>
<ID>1401546</ID> <ES_ID>1017502</ES_ID> <MES_AMOUNT>13.515278</MES_AMOUNT>
<UNIT>1006561</UNIT>
<START_DATE>2007-01-14</START_DATE>
<STATUS>1</STATUS>
</EM_ES_MEASURE>
<EM_ES_MEASURE>
<ID>1401547</ID>
<ES_ID>1017502</ES_ID>
<MES_AMOUNT>13.546702</MES_AMOUNT>
<UNIT>1006561</UNIT>
<START_DATE>2007-01-14</START_DATE>
<STATUS>1</STATUS>
</EM_MATERIAL_TEXT>