Smart questions
Smart answers
Smart people
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Member Login

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips now!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

Join Tek-Tips
*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

LINK TO THIS FORUM!

Add Stickiness To Your Site By Linking To This Professionally Managed Technical Forum.
Just copy and paste the
code below into your site.

Partner With Us!

"Best Of Breed" Forums Add Stickiness To Your Site
Partner Button
(Download This Button Today!)

Feedback

"...Dudes! Great site. You've saved me hours and hours...and I have just started using your site. I've already passed your URL onto my entire company. Keep up the awesome work. Bingo-bango..."

Geography

Where in the world do Tek-Tips members come from?
mattjp (Programmer)
23 Sep 08 13:51
Hi, I'm relatively green at SQL queries, and I was wondering what the best way to construct a t-sql query on this data:

table: activitylog
fields: serial#, starttime, stoptime, activity

'serial' is non-unique, 'serial' + 'starttime' is unique. I need a query that will return, for each serial number, the row with the most recent (greatest) 'starttime' timestamp.

For example, for this table:

SN#     start    stop   act
1234    12:00    12:15  a
1235    13:34    13.45  a
1234    13:50    14:02  b

I need to be able to get:
SN#     start    stop   act
1235    13:34    13.45  a
1234    13:50    14:02  b

What is the best way to do this? Group By doesn't work this way, and I don't think it can be done with a join. Thanks for the help.
genomon (Programmer)
23 Sep 08 16:34
Check the FAQs at forum183: Microsoft SQL Server: Programming.

"Don't be irreplaceable. If you can't be replaced, you can't be promoted."
 

r937 (TechnicalUser)
23 Sep 08 23:01

CODE

SELECT "serial#"
     , starttime
     , stoptime
     , activity
  FROM activitylog
INNER
  JOIN ( SELECT "serial#"
              , MAX(starttime) AS maxtime
           FROM activitylog
         GROUP
             BY "serial#" ) AS m
    ON m."serial#" = activitylog."serial#"
   AND m.maxtime = activitylog.starttime

r937.com | rudy.ca

mattjp (Programmer)
24 Sep 08 8:07
Thanks--you solved my problem completely!

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members!

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close