Thomas J.S.: Zusammenfassung bei gleicher Bedingung in einer Zeile

Beitrag lesen

Hallo,

der Thementitel ist irgendwie unglücklich, mir fällt aber auch nix anderes ein.

ich habe folgendes Problem:

Ich möchte nun eine Tabelle erstellen, mit einer Zeile für Klaus und einer für Erwin usw. In der Tabelle soll mir angezeigt werden, wie oft Erwin und Klaus an einem Tag etwas gesendet haben:

  
<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">  
	<xsl:key name="datum" match="tables/table" use="datum"/>  
	<xsl:key name="name" match="tables/table" use="name"/>  
	<xsl:key name="dn" match="tables/table" use="concat(name,datum)"/>  
	<xsl:template match="/">  
		<html>  
			<head>  
				<title>Gruppierung</title>  
			</head>  
			<body>  
				<table>  
					<tr>  
						<td>Nutzer</td>  
						<xsl:for-each select="tables/table[generate-id() = generate-id(key('datum', datum)[1])]">  
							<td>  
								<xsl:value-of select="datum"/>  
							</td>  
						</xsl:for-each>  
					</tr>  
					<xsl:for-each select="tables/table[generate-id() = generate-id(key('name', name)[1])]">  
						<tr>  
							<td>  
								<xsl:value-of select="name"/>  
							</td>  
							<xsl:for-each select="key('name', name)">  
								<xsl:variable name="n" select="name"/>  
								<td>  
									<xsl:choose>  
										<xsl:when test="current()[generate-id() = generate-id(key('dn', concat(name,datum)))]">  
											<xsl:value-of select="count(key('datum', datum)[name = $n])"/>  
										</xsl:when>  
										<xsl:otherwise>-</xsl:otherwise>  
									</xsl:choose>  
								</td>  
							</xsl:for-each>  
						</tr>  
					</xsl:for-each>  
				</table>  
			</body>  
		</html>  
	</xsl:template>  
</xsl:stylesheet>  
  

ausgabe ist:
Nutzer  01.03.2009   03.03.2009   02.03.2009
Klaus 1 2 -
Erwin 2 - 1

Was du damit nicht machen kannst, ist eine Sortierung nach Datum und/oder Name

Grüße
Thomas