More help with returning the newest record in a query

J

JessM

I have a form that comments can be entered into and receive a time stamp. So
I end up with multiple comments per project number. I want to run a query
that only returns the newest comment for each project number.

Below is what I tried, but I get the following error message: The LEVEL
clause includes a word or argument that is misspelled or missing,
or the punctuation is incorrrect.

New Query:
SELECT Data_ProjectComments.Project_Number,
Data_ProjectComments.CurrentTime, Data_ProjectComments.CommentCode,
Data_ProjectComments.Comment
FROM Data_ProjectComments
WHERE (((Data_ProjectComments.CurrentTime)=(SELECT MAX(CurrentTime) FROM
Data_ProjectComments)));
Group By Data_ProjectComments.Project_Number
 
K

KARL DEWEY

Subqueries do not end with a semicolon. Try it this way ---
SELECT Data_ProjectComments.Project_Number,
Data_ProjectComments.CurrentTime, Data_ProjectComments.CommentCode,
Data_ProjectComments.Comment
FROM Data_ProjectComments
WHERE (((Data_ProjectComments.CurrentTime)=(SELECT MAX(CurrentTime) FROM
Data_ProjectComments)))
Group By Data_ProjectComments.Project_Number;
 
K

KARL DEWEY

Try it this way ---
SELECT Data_ProjectComments.Project_Number,
Data_ProjectComments.CurrentTime, Data_ProjectComments.CommentCode,
Data_ProjectComments.Comment
FROM Data_ProjectComments
WHERE (((Data_ProjectComments.CurrentTime)=(SELECT MAX(CurrentTime) FROM
Data_ProjectComments)))
Group By Data_ProjectComments.Project_Number,
Data_ProjectComments.CurrentTime, Data_ProjectComments.CommentCode,
Data_ProjectComments.Comment;
 
J

JessM

It works but it only gives me the most recent project number comment overall,
it doesn't give me the most recent comment for each project number.
 
J

JessM

I get the following error message when I try it:

You tried to execute a query that does not inlcude the specifed expression
'CurrentTime' as part of an aggregate function.
 
K

KARL DEWEY

I do not know sub queries so I used two ---
Data_ProjectComments_Latest ---
SELECT Data_ProjectComments.Project_Number,
Max(Data_ProjectComments.CurrentTime) AS MaxOfCurrentTime
FROM Data_ProjectComments
GROUP BY Data_ProjectComments.Project_Number;

SELECT Data_ProjectComments.Project_Number,
Data_ProjectComments.CurrentTime, Data_ProjectComments.CommentCode,
Data_ProjectComments.Comment
FROM Data_ProjectComments INNER JOIN Data_ProjectComments_Latest ON
(Data_ProjectComments.CurrentTime =
Data_ProjectComments_Latest.MaxOfCurrentTime) AND
(Data_ProjectComments.Project_Number =
Data_ProjectComments_Latest.Project_Number);
 
J

JessM

Thanks - that worked!!

KARL DEWEY said:
I do not know sub queries so I used two ---
Data_ProjectComments_Latest ---
SELECT Data_ProjectComments.Project_Number,
Max(Data_ProjectComments.CurrentTime) AS MaxOfCurrentTime
FROM Data_ProjectComments
GROUP BY Data_ProjectComments.Project_Number;

SELECT Data_ProjectComments.Project_Number,
Data_ProjectComments.CurrentTime, Data_ProjectComments.CommentCode,
Data_ProjectComments.Comment
FROM Data_ProjectComments INNER JOIN Data_ProjectComments_Latest ON
(Data_ProjectComments.CurrentTime =
Data_ProjectComments_Latest.MaxOfCurrentTime) AND
(Data_ProjectComments.Project_Number =
Data_ProjectComments_Latest.Project_Number);
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top