I think you could use a query in your select clause to do this:


SELECT MAX(QuizDate) as QuizDate, QuizID,
    QuizPercent = (SELECT QuizPercent FROM Test_Board_Biomed as t1
                            WHERE t1.Customer_ID = 21
                            and t1.QuizID = Test_Board_Biomed.QuizID
                            and t1.QueryDate = MAX(Test_Board_Biomed.QuizDate))
FROM Test_Board_Biomed
WHERE Customer_ID = 21
GROUP BY QuizID


If this doesn't work (the "t1.QueryDate = MAX(Test_Board_Biomed.QuizDate)" part looks sketchy to me, but it might work) then you can use a subquery with a join:


SELECT t2.QuizDate, t2.QuizID, t1.QuizPercent
FROM
(SELECT MAX(QuizDate) as QuizDate, QuizID,
FROM Test_Board_Biomed
WHERE Customer_ID = 21
GROUP BY QuizID) as t2
JOIN Test_Board_Biomed as t1
      ON (t1.Customer_ID = t2.Customer_ID
      and t1.QuizID = t2.QuizID
      and t1.QueryDate = t2.QuizDate)

Give that a shot.
    Mark

-----Original Message-----
From: [EMAIL PROTECTED] [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Thursday, October 14, 2004 2:27 PM
To: CF-Talk
Subject: MAX() Select Problem

Having problems  with a select query:

SELECT MAX(QuizDate) as QuizDate, QuizID
FROM Test_Board_Biomed
WHERE Customer_ID = 21
GROUP BY QuizID

The above query returns:

QuizDate    QuizID
2004-10-12 Antacids  
2004-10-13 Sleep
2004-10-12 Stool

What I want is something like

QuizDate    QuizID     QuizPercent
2004-10-12  Antacids    53  
2004-10-13  Sleep       62
2004-10-12  Stool       61

I am having a hard time selecting the QuizPercent associated with
the Max(QuizDate). Basicaly, I want to extract the Score that was
received on the last date the test was taken.

SELECT MAX(QuizDate) as QuizDate, QuizID, QuizPercent
FROM Test_Board_Biomed
WHERE Customer_ID = 21
GROUP BY QuizID , QuizPercent

The above query returns

QuizDate    QuizID      QuizPercent
2004-10-11 Sleep      25
2004-10-11 Sleep      37
2004-10-11 Antacids   46
2004-10-12 Antacids 53
2004-10-12 Stool          61
2004-10-13 Sleep          62
2004-10-12 Sleep          75
2004-10-12 Sleep          87
2004-10-12 Sleep         100

What am I doing wrong? Or is it that it's not possible to have
this kind of query?

Sebastian
  _____
[Todays Threads] [This Message] [Subscription] [Fast Unsubscribe] [User Settings] [Donations and Support]

Reply via email to