We use the following to generate our "My Grades" report for each of the users (thanks to another Moodler for the code):
SELECT
`prefix_user`.`lastname`,
`prefix_user`.`firstname`,
`prefix_user`.`city`,
`prefix_course_categories`.`name`,
`prefix_course`.`fullname`,
`prefix_grade_items`.`itemname`,
`prefix_grade_grades`.`finalgrade`,
`prefix_grade_items`.`itemmodule`,
FROM_UNIXTIME(`prefix_grade_grades`.`timemodified`) as `date_complete`
FROM
(`prefix_course`
INNER JOIN (`prefix_user`
INNER JOIN (`prefix_grade_grades`
INNER JOIN `prefix_grade_items` ON `prefix_grade_grades`.`itemid` = `prefix_grade_items`.`id`) ON `prefix_user`.`id` = `prefix_grade_grades`.`userid`) ON `prefix_course`.`id` = `prefix_grade_items`.`courseid`)
INNER JOIN
`prefix_course_categories` ON `prefix_course`.`category` = `prefix_course_categories`.`id`
WHERE userid =%%USERID%%
HAVING (((`prefix_grade_grades`.`finalgrade`) > 0) AND ((`prefix_grade_items`.`itemmodule`) Is Not Null))
ORDER BY `prefix_course_categories`.`name`,`prefix_user`.`lastname`,`prefix_user`.`firstname`,`prefix_user`.`idnumber`,`prefix_course`.`category`, `prefix_grade_items`.`itemname`,`prefix_grade_grades`.`timemodified` DESC