Matt

You can try the following. It seems to work... my gut feeling tells me
there may be an easier way with less queries but I can't think of
anything right now. You may want to consider caching queries for speed
depending on how much the data is changing.

<!--- get all event details --->
<cfquery name="getAllEvents" datasource="#request.dsn#"
cachedwithin="#createTimeSpan(0,1,0,0)#" result="a">
        select *
        from tblEventName evName
        inner join tblEventDate evDate
        on evName.eventID = evDate.eventID
</cfquery>

<!--- get the order of the events ordered by the ones that have the
furthest dates first --->
<cfquery name="getOrder" datasource="#request.dsn#"
cachedwithin="#createTimeSpan(0,1,0,0)#" result="b">
        select eventname,tbleventdate.eventid, max(eventdate) as tempdate
        from tbleventdate
        inner join tbleventname
        on tbleventdate.eventid = tbleventname.eventid
        group by eventname, tbleventdate.eventid
        order by max(eventdate) desc, tbleventdate.eventid
</cfquery>

<!--- test debug --->
<cfdump var="#getAllEvents#">
<cfdump var="#a#">
<cfdump var="#getOrder#">
<cfdump var="#b#">

<!--- output the query with the order of correct eventids --->
<cfoutput query="getOrder">

        <h5>#eventname#</h5>

        <!--- do a QoQ to get the eventDate details for this event id --->
        <cfquery dbtype="query" name="getEventDetails">
                select eventDate
                from getAllEvents
                where eventID = #eventID#
                order by eventDate desc
        </cfquery>
        
        <!--- output all events dates for this event id --->
        <cfloop query="getEventDetails">
                #dateformat(eventDate,"m/dd/yyyy")#<br />
        </cfloop>
        
</cfoutput>

You can see the results here which I think is where you are trying to get to? :

http://fclounge.cfdeveloper.co.uk/test.cfm

My feeling is that there is something a bit more clever can be done
with SQL/grouping but this may give you something to work with ?

Rich

On 9/20/06, Matt Williams <[EMAIL PROTECTED]> wrote:
> I'm gonna try this again as while I slept last night my previous post
> turned into a discussion of SQL best practices and did not give the
> answer needed. But that's probably because I didn't explain well
> enough. Ordering by EventID will not work. Nor will ordering by date.
> Maybe a little more data will help.
>
> EventID, EventName
> 1 | TestEventOne
> 2 | TestEventTwo
> 3 | AThirdEvent
>
> EventID | EventDates
> 1 | 9/10/2006
> 1 | 9/20/2006
> 2 | 9/15/2006
> 3 | 9/30/2006
>
> <!--- Desired results --->
> AThirdEvent
>  9/30/2006
>
> TestEventOne
>  9/20/2006
>  9/10/2006
>
> TestEventTwo
>  9/15/2006
>
> If you order by EventID, you would get 1, 2, 3. If you ordered by Date
> DESC, you would get
> 3
> 1
> 2
> 1
> But I want the TestEventOne outputs to be together. GroupBy won't do
> it because you've ordered by date.
>
> This probably isn't possible without at least two queries, or at least
> some QofQ usage. I just can't seem to get my head around the solution
> though.
>
> --
> Matt Williams
> "It's the question that drives us."
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:253598
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to