Question : SQL Query - displaying latest entry per user

I have a query that I want to produce the latest entry(visit) for each of the user. In my head the query goes like this: For each user, show me the most recent visit that they had and all of the information from the visit. Given that there are one to many visits per user in this table. How can I return only the most recent visits without have to do some crazy joins? Is there a more simple way of structuring this query?

Here is the table structure:

Visit {
     id                int (Primary Key)
     visit_date   date
     user_id       int (foreign key)
     field1          nvarchar(255)
     field2          nvarchar(255)
     ...
}

To me it looks like a classic case of combining aggregate function with non-aggregate functions of the same table.

Answer : SQL Query - displaying latest entry per user

SELECT *
FROM Visits v
WHERE v.Visit_Date = (SELECT max(Visit_date) from visits v1 where v1.User_ID = v.User_ID )
Random Solutions  
 
programming4us programming4us