xsl-list
[Top] [All Lists]

Is conditional group-by possible?

2005-01-25 08:51:31
Greetings,

Is a conditional group-by possible?

Here is what I tried:

<xsl:for-each-group 
     select="Table" 
     group-by="(if ((FED_ID_FLAG = 'F') 
     and (not(FED_ID = ''))) 
     then FED_ID 
     else SOC_SEC_ID)">

And I get nothing in my output.

My input looks like simliar to this :

<NewDataSet>
  <Table>    
    <PROV_SOC_SEC_ID>111104550</PROV_SOC_SEC_ID>    
    <PLOS_FED_ID_FLAG>S</PLOS_FED_ID_FLAG>
    <PLOS_FED_ID>190404550</PLOS_FED_ID>
    <PATIENT_LAST_NAME>Doe</PATIENT_LAST_NAME>
    <PATIENT_FIRST_NAME>John</PATIENT_FIRST_NAME>    
  </Table>
  <Table>    
    <PROV_SOC_SEC_ID>111104550</PROV_SOC_SEC_ID>
    <PLOS_FED_ID_FLAG>S</PLOS_FED_ID_FLAG>
    <PLOS_FED_ID>190404550</PLOS_FED_ID>
    <PATIENT_LAST_NAME>Doe</PATIENT_LAST_NAME>
    <PATIENT_FIRST_NAME>Jane</PATIENT_FIRST_NAME>    
  </Table>
  <Table>    
    <PROV_SOC_SEC_ID>777104550</PROV_SOC_SEC_ID>
    <PLOS_FED_ID_FLAG>F</PLOS_FED_ID_FLAG>
    <PLOS_FED_ID>880121550</PLOS_FED_ID>
    <PATIENT_LAST_NAME>Smith</PATIENT_LAST_NAME>
    <PATIENT_FIRST_NAME>Mary</PATIENT_FIRST_NAME>    
  </Table>
</NewDataSet>

This should result in two groups, one 111104550, the other 880121550.

What I want is to use the FED_ID element to group by if the FED_ID_FLAG =
'F' and FED_ID is an empty string.  Otherwise I want to use the SOC_SEC_ID
element to group.

Thanks in advance,
Jim Neff


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>