cfoutput query group - Cold Fusion

This is a discussion on cfoutput query group - Cold Fusion ; I have a query that returns data displayed in table that looks like this : Name ID Company count Joe Smith xx1xx Burger Inc 1 Joe Smith xx1xx McDonalds 5 Bob Jones AA2AA Jets Inc 4 What I would like ...

+ Reply to Thread
Results 1 to 3 of 3

cfoutput query group

  1. Default cfoutput query group

    I have a query that returns data displayed in table that looks like this :

    Name ID Company count
    Joe Smith xx1xx Burger Inc 1
    Joe Smith xx1xx McDonalds 5
    Bob Jones AA2AA Jets Inc 4

    What I would like it to look like is this, display the name and ID only once :

    Name ID Company count
    Joe Smith xx1xx Burger Inc. 1
    McDonalds 5
    Bob Jones AA22A Jets Inc 4

    This is the code that I am attempting to use, but it obviously is incorrect.

    <cfoutput query="qryGet_Null" group="buyer_number">
    <tr>
    <cfoutput>
    <td>#buyer_name#</td>
    <td>#buyer_number#</td>
    </cfoutput>
    <td>#supplier_name#</td>
    <td align="center">#total_count#</td>
    </tr>
    </cfoutput>

    Where do I have to place the cfoutput tags to make the output displayed like
    the sample above ?

    Also, if I export to excel, will it export just the way it is, with one name
    only, per supplier ?

    Thanks


  2. Default Re: cfoutput query group

    For starters, dont place <cfoutput></cfoutput> tags within an output query...
    it wont work.

    If you are going to have multiple instances of the same buyer with multiple
    companies.. and you have to run it like this, I would suggest running a query
    to return all of your results..

    Then run an output query, and within the output query, run a query of queries
    to select the supplier name based on the id/name passed in the output query.

    This is a basic example, you'll have to rewrite to match your needs etc.

    <cfoutput query="main_query">
    <cfquery name="companies" dbtype="query">
    select * from main_query
    where name = '#buyer_name#' <--- I would use an id to be more specific
    then a name --->
    </cfquery>

    <cfloop query="companies">
    <tr>
    <td>#buyer_name#</td>
    <td>#buyer_number#</td>
    <td>#supplier_name#</td>
    <td align="center">#total_count#</td>
    </tr>

    </cfloop>

    </cfoutput>



  3. Default Re: cfoutput query group

    Actually, trojnfn's nesting of <cfoutput> was just fine, since the outer
    <cfoutput> tag was using the group="" attribute.

    When using the group attribute, you have to remember that everything inside
    the outer <Cfoutput> block will only loop once per instance of the grouped
    field. the code inside the inner <cfoutput> block will loop once for each
    record in your query.

    However, this may not be the best tool to use in this situation, since it
    looks like you want multiple rows, but only display the name on the first row
    for a given buyer. Maybe something like this might work better for you:

    <!--- Used to store the current buyer name --->
    <cfset sHoldName = "">
    <cfoutput query="qryGet_Null">
    <tr>
    <!--- Only display the buyer name if the buyer name has changed since the
    last record --->
    <td><cfif buyer_name neq sHoldName>#buyer_name#<cfelse>&nbsp;</cfif></td>
    <!--- Only display the buyer number if the buyer name has changed since
    the last record --->
    <td><cfif buyer_name neq sHoldName>#buyer_number#<cfelse>&nbsp;</cfif></td>
    <!--- List supplier name and total_count for all rows --->
    <td>#supplier_name#</td>
    <td align="center">#total_count#</td>
    <tr>
    <!--- Store the buyer name for comparison against the next record --->
    <cfset sHoldName = buyer_name>
    <cfoutput>


+ Reply to Thread