my average waiting time question?

I have a support system written in ColdFusion and now would like to generate a report using some of data I have in the backend database.

I need to output the average waiting time this month for my tickets

In my database each ticket has a time and date,  i need to know how i would pull these and work out this..

so example data in my database would be

ticketID          datetime
1                   Nov 13 2006 5:05PM
1                   Nov 13 2006 5:05PM
1                   Nov 13 2006 5:05PM
1                   Nov 13 2006 5:05PM
2                   Nov 13 2006 5:05PM
2                   Nov 13 2006 5:05PM
3                   Nov 13 2006 5:05PM
3                   Nov 13 2006 5:05PM

1) i first need to  get  all tickets out of the database, take the first datetime for each ticket.
2) then i need to get the second datetime for each ticket (if it has one) as this is the first time the ticket was responded to, all datetimes after that for that ticket does not matter.

we now have all the start datetime of the each ticket and all the first post (the response) of all tickets

3) i then need to work out the average waiting time per month based on the set of data i have for all the tickets

can you see now why i am so confused? after all that i would like to maybe use the new cfchart to present my data?

is any of this possible and could anyone give me a hand understand this?


LVL 12
pigmentartsAsked:
Who is Participating?
 
danrosenthalCommented:
Here is an idea...

select t.ticketID
      , MIN(t.[datetime]) as firstdate
      ,(
            select TOP 1 [datetime]
            FROM ticket
            WHERE ticketID = t.ticketID
            AND [datetime] <> MIN(t.[datetime])
            ORDER BY [datetime]
      ) AS seconddate
      ,
CAST(
      (
            (
                  select TOP 1 [datetime]
                  FROM ticket
                  WHERE ticketID = t.ticketID
                  AND [datetime] <> MIN(t.[datetime])
                  ORDER BY [datetime]
            )
            - MIN(t.[datetime])
      )
      AS float
) AS waittime
INTO #temp
from ticket t
GROUP BY t.ticketID

select avg(waittime) FROM #temp





0
 
pigmentartsAuthor Commented:
cool, i used you example above, just one last question, possible to exstend this a bit and only output the avg for this month i.e. only show the waiting time for the current month?

<cfquery name="getDomain" datasource="#dbSource#" username="#dbUsername#" password="#dbPassword#">



select t.ticketID
     , MIN(t.[datetime]) as firstdate
     ,(
          select TOP 1 [datetime]
          FROM issues
          WHERE ticketID = t.ticketID
          AND [datetime] <> MIN(t.[datetime])
          ORDER BY [datetime]
     ) AS seconddate
     ,
CAST(
     (
          (
               select TOP 1 [datetime]
               FROM issues
               WHERE ticketID = t.ticketID
               AND [datetime] <> MIN(t.[datetime])
               ORDER BY [datetime]
          )
          - MIN(t.[datetime])
     )
     AS float
) AS waittime
INTO temp
from issues t
GROUP BY t.ticketID


</cfquery>


<cfquery name="getavg" datasource="#dbSource#" username="#dbUsername#" password="#dbPassword#">
select avg(waittime) AS wtime  FROM temp WHERE waittime IS NOT NULL
</cfquery>

<cfoutput query="getavg">
#wtime#
</cfoutput>
0
 
pigmentartsAuthor Commented:
sorry done that, thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.