Home Forums SQL Server 7,2000 T-SQL how to calculate duration spent on every visit RE: how to calculate duration spent on every visit

  • I have fixed my problem myself.

    The problem was how to get next row if exists then calculate DateDiff (current Row's Time - Next row's time) till end of related rows. Incase of last row it calculates DateDiff from current rows's time - tracking master tables's session end time.

    Hurray ......

    select dtl.tracking_dtl_id, Login_Name, mstr.session_id, page_name, dtl.datestamp, isnull(dtl.SessionEndTime, mstr.end_datetime) as end_datetime,

    dbo.formattime(datediff(s, dtl.datestamp, isnull(dtl.SessionEndTime, mstr.end_datetime))) as Duration

    from tbl_tracking_mstr mstr

    inner join

    (select top 100 percent Tracking_Dtl_Id, Session_Id, Page_Id, DateStamp,

    cnt = (select count(*) from tbl_tracking_dtl b where session_id = '99332BD543231F87C' and b.Tracking_Dtl_Id > a.Tracking_Dtl_Id

    ), SessionEndTime = (select top 1 c.DateStamp from tbl_tracking_dtl c where session_id = '99332BD543231F87C' and c.tracking_dtl_id > a.tracking_dtl_id order by tracking_dtl_id)

    from tbl_tracking_dtl a where session_id = '99332BD543231F87C'

    order by tracking_dtl_id ) dtl

    on mstr.session_id = dtl.session_id

    inner join tbl_tracking_webpages web

    on dtl.page_id = web.page_id

    where mstr.login_id = 'shamshad.ali'

    and mstr.session_id = '99332BD543231F87C' and mstr.start_datetime between 'Jan 1 2006 12:00AM' and 'Jan 10 2006 11:59PM' and mstr.session_id = dtl.session_id

    and dtl.page_id = web.page_id order by dtl.tracking_dtl_id

    -- Plz close this post

    Shamshad Ali.