[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Sum & Sort & Maxvalue

Subject: Sum & Sort & Maxvalue
From: Florian Mueller <jjdm@xxxxxxxx>
Date: Fri, 05 Mar 2004 14:27:39 +0100
sort sum
Hello

I have a complex problem. I dont know if i can explain it correctly. 

First, i have the following code:

xml
----------------------------------------

<day date="01.03.2004">
   <users>1</users>
   <gv name="Offerte Neu">
      <hits>2</hits>
      <activity name="Ermittlung eines Produktes">
         <hits>2</hits>
      </activity>
   </gv>
   <gv name="SimulatorWeb">
      <hits>1</hits>
      <activity name="SimulatorDummy">
         <hits>1</hits>
      </activity>
      <activity name="Ermittlung eines Produktes">
         <hits>3</hits>
      </activity>
   </gv>
   <gv name="CIS">
      <hits>1</hits>
      <activity name="Vertrags Anzeige">
         <hits>1</hits>
      </activity>
      <activity name="Vertrags Suche">
         <hits>1</hits>
      </activity>
   </gv>
   <gv name="Muster">
      <hits>11</hits>
      <activity name="Muster">
         <hits>11</hits>
      </activity>
   </gv>
   <gv name="Mahninfo">
      <hits>1</hits>
      <activity name="Mahninfo">
         <hits>1</hits>
      </activity>
   </gv>
</day>
<day date="02.03.2004">
   <users>2</users>
   <gv name="Offerte Neu">
      <hits>3</hits>
      <activity name="Erfassung Produktedaten">
         <hits>1</hits>
      </activity>
      <activity name="Ermittlung eines Produktes">
         <hits>3</hits>
      </activity>
   </gv>
   <gv name="Mahninfo">
      <hits>3</hits>
      <activity name="Mahninfo">
         <hits>3</hits>
      </activity>
   </gv>
</day>
----------------------------------------

xsl
----------------------------------------
<xsl:for-each select="//day">
	<xsl:variable name="day" select="."/>
	<xsl:value-of select="normalize-space($day/@date)
		<xsl:for-each select="//gv/activity[generate-id()=generate-id(key('activity_key',@name))]">
			<xsl:variable name="uname" select="@name"/>
			<xsl:variable name="activity" select="$day/gv/activity[@name=$uname]/@name"/>
			<xsl:variable name="summe" select="sum($activity/../..//activity[@name=$uname]/hits)"/>
			<xsl:sort data-type="number" order="descending">	
				<xsl:value-of select="$summe"/>
			</xsl:sort>
			<xsl:if test="$summe>0">
				<xsl:value-of select="$activity"/>
				<b><xsl:value-of select="$summe"/></b>
				</xsl:if>
		</xsl:for-each>
</xsl:for-each>
----------------------------------------

My goal is the following sorted list of activities during a day:

----------------------------------------
01.03.2004
Muster 11
Ermittlung eines Produktes 5
Mahninfo 1
SimulatorDummy 1
Vertrags Anzeige 1
Vertrags Suche 1

03.03.2004
Muster 4
Ermittlung eines Produktes 2
Mahninfo 2
Aufbereitung Offerte 1
Erfassung Produktedaten 1
CIS 1
----------------------------------------

The xsl-script doesnt work properly. The result is this

----------------------------------------
01.03.2004
Muster	11
Ermittlung eines Produktes 5
SimulatorDummy	1
Vertrags Anzeige 1
Vertrags Suche	1
Mahninfo 1

03.03.2004
Ermittlung eines Produktes 4
Aufbereitung Offerte 2
Erfassung Produktedaten	3
----------------------------------------

The problem is, that i have to list every activity only one time although the same activity is in several gv-tags.

Probably someone could help me.

The next problem is to get the maximum-value of the activity-hits. I have a recursive template with i can get the maximum value of a list. Thats no problem. But now there's another situation. I first have to sum-up all the hits of one activity and then i could get the maximum of all the sum-up hits.

Someone understand anything and have a solution for my problems?

Kindly regards
Florian Mueller

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.