GESCHAFFT!!!
Hier die Lösung, basierend auf demselben XSL wie oben, einfach mit minimalen Anpassungen:
1. Beim ersten FOR-EACH SELECT habe ich den SELECT um /parent::* erweitert, um <gruppe1>, resp. <gruppe2> zu erhalten.
2. Der SORT und die VARIABLE-Setzung wurde angepasst: "name(.)", womit man genau den Wert erhält, der zur Zeit im ersten FOR-EACH SELECT ermittelt wird.
Somit hat's ohne DISTINCT geklappt.
* * *
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<xsl:template match="/">
<xsl:for-each select="//instrument[name(../parent::*) = 'zeichnung']/parent::*">
<xsl:sort select="name(child::*)"/>
<xsl:variable name="gruppe"><xsl:value-of select="name(.)"/></xsl:variable>
<tr><td colspan="100%" width="100%" align="left" valign="middle" height="25" class="normalwhite" bgcolor="#bbbbbb" style="padding:2pt;">
....
</td></tr>
<tr><td colspan="100%" width="100%" height="1" class="title"><img src="../img/pix_trans_1x1.gif" width="100%" height="1" border="0"/></td></tr>
<tr height="25" class="mittelfett" align="right">
<td width="50%" align="left" style="padding-left:2pt;">Produktname</td>
<td width="15%">Valor</td>
<td width="20%">ISIN</td>
<td width="15%" style="padding-right:2pt;">Verfall</td>
</tr>
<tr><td colspan="100%" width="100%" height="1" class="title"><img src="../img/pix_dark_1x1.gif" width="100%" height="1" border="0"/></td></tr>
<xsl:for-each select="//instrument[name(../parent::*) = 'zeichnung' and name(parent::*) = $gruppe]">
<tr height="25" class="mittel" align="right" style="cursor:pointer;" DEFANGED_OnMouseOver="className='splistrowdark'" DEFANGED_OnMouseOut="className='splistrow'">
<xsl:attribute name="DEFANGED_OnClick">javascript:parent.location.href='../products/spdetails.asp?chosen=<xsl:value-of select="instrumentVN1"/>'</xsl:attribute>
<td align="left" style="padding-left:2px;"><xsl:if test="descrShort[.!='']">
<font class="mittel"><xsl:value-of select="descrShort"/></font>
</xsl:if>
<xsl:if test="descrShort[.='']">
n.a
</xsl:if>
</td><td style="padding-right:0px;"><xsl:if test="isin[.!='']">
<xsl:value-of select="instrumentVN1"/>
</xsl:if>
<xsl:if test="instrumentVN1[.='']">
n.a
</xsl:if>
</td><td style="padding-right:0px;"><xsl:if test="isin[.!='']">
<xsl:value-of select="isin"/>
</xsl:if>
<xsl:if test="isin[.='']">
n.a
</xsl:if>
</td><td style="padding-right:2px;"><xsl:if test="isin[.!='']">
<xsl:value-of select="expirationDate"/>
</xsl:if>
<xsl:if test="expirationDate[.='']">
n.a
</xsl:if>
</td></tr>
<tr><td colspan="100%" width="100%" height="1" class="title"><img src="../img/pix_dark_1x1.gif" width="100%" height="1" border="0"/></td></tr>
</xsl:for-each>
<tr><td colspan="100%" width="100%" height="26" class="title"><img src="../img/pix_trans_1x1.gif" width="100%" height="26" border="0"/></td></tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>