You could use a CASE expression to calculate the last column:SELECT Users.Userid, Users.Username, COUNT(Messages.Messageid) As Messages,SUM(CASE WHEN Ratings.Rating > 5 THEN 1 ELSE 0 END) AS GoodMessagesFROM Users LEFT JOIN Messages ON Messages.Author = Users.Userid LEFT JOIN Ratings ON Messages.Messageid = Ratings.MessageidWHERE Messages.TimeStamp BETWEEN '1 january 2002' AND '30 march 2004'GROUP BY Users.Userid, Users.UsernameORDER BY Users.Userid
Of course assuming here that you have a column in the Ratings tables called "Rating" (what else?!) that stores the actual rating of the message.EDIT: Damn
!OS