<root>
<filiale id="1">
  <kunde id="4711">
    <umsatz stueck="5">2500</umsatz>
  </kunde
  <kunde id="4712">
    <umsatz stueck="4">1600</umsatz>
  </kunde>
</filiale>
<filiale id="2">
  <kunde id="4711">
    <umsatz stueck="2">1500</umsatz>
  </kunde
  <kunde id="4713">
    <umsatz stueck="7">3250</umsatz>
  </kunde>
</filiale>
</root>
Ich möchte nun ein Ranking der Kunden Filialübergreifend absteigend nach Stück bzw. alternativ nach Summe:
Versucht habe ich es mit:
<xsl:apply-templates select="filiale/kunde">
  <xsl:sort select="sum(./filiale/kunde/umsatz/@stueck)" order="descending" data-type="number" />
</xsl:apply-templates>
bzw.
<xsl:apply-templates select="filiale/kunde">
  <xsl:sort select="sum(./filiale/kunde/umsatz)" order="descending" data-type="number" />
</xsl:apply-templates>
Nur werden dabei in mehreren Filialen enthaltende Kunden doppelt aufgelistet und nicht gruppiert und summiert.
<filiale id="1">
  <kunde id="4711">
    <umsatz stueck="5">2500</umsatz>
  </kunde
  <kunde id="4712">
    <umsatz stueck="4">1600</umsatz>
  </kunde>
</filiale>
<filiale id="2">
  <kunde id="4711">
    <umsatz stueck="2">1500</umsatz>
  </kunde
  <kunde id="4713">
    <umsatz stueck="7">3250</umsatz>
  </kunde>
</filiale>
</root>
Ich möchte nun ein Ranking der Kunden Filialübergreifend absteigend nach Stück bzw. alternativ nach Summe:
Versucht habe ich es mit:
<xsl:apply-templates select="filiale/kunde">
  <xsl:sort select="sum(./filiale/kunde/umsatz/@stueck)" order="descending" data-type="number" />
</xsl:apply-templates>
bzw.
<xsl:apply-templates select="filiale/kunde">
  <xsl:sort select="sum(./filiale/kunde/umsatz)" order="descending" data-type="number" />
</xsl:apply-templates>
Nur werden dabei in mehreren Filialen enthaltende Kunden doppelt aufgelistet und nicht gruppiert und summiert.
Comment