• home
  • forum
  • my
  • kt
  • download
  • Grouping Results

    Author: 2007-07-05 16:22:56 From:

    ColdFusion makes it easy to select data out of a database and display it on a page. As soon as you feel good about your success in crossing the divide from static to dynamic, someone will say "That's nice, can you group the list by author?". Whether you are asked to group things by author, make, brand, year or whatever, ColdFusion has you covered with its grouping capabilities.

    To present things in groups, we first rely on SQL to group the data before it is presented to ColdFusion. This is done with a GROUP BY or ORDER BY clause.

    CLAUSEQUERY
    GROUP BYSELECT Author, Title, Publisher
    GROUP BY Publisher, Author, Title
    ORDER BYSELECT Author, Title, Publisher
    ORDER BY Publisher, Author, Title

    ColdFusion will then display grouped data by using nested CFOUTPUT tags. In both cases the outter most CFOUTPUT will indicate the QUERY and each CFOUTPUT that is used to group will use a GROUP parameter except the innermost CFOUTPUT. The code below will group authors by publisher and then group books by author.

    CODE
    <CFOUTPUT Query="myquery" GROUP="Publisher">
      <p>#Publisher#
      <CFOUTPUT GROUP="Author">
        <br>#Author#
        <CFOUTPUT>
       <br>~ #Title#
        </CFOUTPUT>
      </CFOUTPUT>
    </p>
    </CFOUTPUT>
    OUTPUT

    Macromedia Press
    Forta
    ~CF WACK Third Edition
    ~Reality ColdFusion MX

    Newbie Press
    Barr
    ~Instant Messenger for Dummies
    Gates
    ~Dominating the World with Software Patches

    If you use a GROUP BY clause with a WHERE clause the GROUP BY clause most come after the WHERE clause. Think of this as the SQL engine finding all of the results that match the WHERE statement and then it groups the results.

    If you use a GROUP BY clause with an ORDER BY, use the GROUP BY before the ORDER BY clause. The SQL engine will create the groups and then order the groups, this reduces the amount of ordering that is done by SQL since the number of groups is the same or less than the number of members of the groups.

    discuss this topic to forum

    relation tutorial

    No relevant information

    New

    Hot