select
    AVG(convert(int, SA.GRADE)) ,
    CAC.EA7CLASSASSIGNMENTCATEGORIESID,
    CAC.Name

from EA7STUDENTS S


join EA7STUDENTASSIGNMENTS SA on
    SA.EA7STUDENTSID = s.EA7STUDENTSID
join EA7CLASSASSIGNMENTS CA on
    CA.EA7CLASSASSIGNMENTSID = SA.EA7CLASSASSIGNMENTSID
join EA7CLASSASSIGNMENTCATEGORIES CAC on
    CAC.EA7CLASSASSIGNMENTCATEGORIESID = CA.EA7CLASSASSIGNMENTCATEGORIESID

where S.EA7STUDENTSID = 2 and SA.DATECHANGED <= '3/17/2004'

group by CAC.EA7CLASSASSIGNMENTCATEGORIESID, CAC.NAME

Blackbaud provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with Structured Query Language and the tools used to create and modify SQL statements. Blackbaud Customer Support can help explain the functionality of a particular procedure but we will not modify, or assist you with modifying, these examples to provide additional functionality. If you are interested in learning more about the Read Only Database Assistance (RODBA), contact your Account Representative at solutions@blackbaud.com.