Хорошо, вот сокращенная форма.У меня есть три основные таблицы для извлечения данных:
StudentData - PK - это идентификационный номер студента.Содержит контактную информацию, ее текущий статус («00» для ни одного, «P» для пробации, «S» для приостановки) и кумулятивные данные gpa.
CourseData - PK - CRN.Содержит только сокращенный предмет и номер курса (IE ECON 200)
StudentCourses - PK - это AutoNum.Таблица отношений «многие ко многим» между StudentData и CourseData.Также содержит статистику по конкретному классу учащегося (класс, кредитные часы и т. Д.).
Таким образом, некоторые примеры данных будут выглядеть так:
-
StudentData
ID: 12345678 Имя: Джон Доу;... [Другая контактная информация];00;CumCreditHours: 100;CumCoursePoints: 190
-
CourseData
CRN: 0001;Аббревиатура: ECON;Номер курса: 101
CRN: 0002;Аббревиатура: CSCI;CourseNumber 201
-
StudentCourses
AutoNum: 1 StudentID: 12345678;CRN: 0001;Оценка отлично-;Кредиты: 3
AutoNum: 2 StudentID 12345678;CRN: 0002;Оценка: B;Кредиты: 3
-
На этом этапе я настраиваюсь следующим образом:
Сначала выполняется запрос, который находит всекурсы, которые студент изучает и преобразует буквенные оценки в баллы.Другой запрос, основанный на первых суммах, суммирует баллы и кредитные часы.Третий запрос берет эти итоги и вычисляет средний балл путем деления их общей суммы баллов на общую сумму кредитного часа.
Отдельно выполняется запрос, который вычисляет совокупный средний балл студента, беря их совокупные баллы и часы из таблицы StudentData (снова деление баллов на часы).
Затем другой запрос берет как GPA за семестр, накопленный GPA, текущий статус и накопленные кредитные часы, так и вычисляет рекомендуемое действие для студента.Поэтому для данных нашего примера это будет выглядеть так:
_
SemesterGPA: 3.33;Совокупный GPA: 1,90;CurrentStatus: 00;CumulativeCreditHours: 100
_
У меня есть формула для определения рекомендуемого действия, настроенного как серия вложенных операторов IIF, которая выглядит следующим образом:
IIf ([CurrentStatus] = "00" И [CumulativeGPA] <2 И [CumulativeCreditHours]> = 12 И [CumulativeCreditHours] <= 23, "PFY", IIf ([CurrentStatus] = "00" И [CumulativeGPA]> = 1,7И [CumulativeGPA] <= 1.99, и [CumulativeCreditHours]> = 24, «P», IIf ([CurrentStatus] = «00», и [CumulativeGPA] <2, и [SemesterGPA] <2, и [CumulativeCreditHours], <12, «W»., IIf ([CurrentStatus] = "00" И [CumulativeGPA]> = 2 И [CumulativeGPA] <= 2,5 И [SemesterGPA] <2 И [CumulativeCreditHours]> = 12, «WUP», IIf ([CurrentStatus] = «00»«И [CumulativeGPA] <1.7 И [CumulativeCreditHours]> = 24,« SUSP », IIf ([CurrentStatus] =« P »И [CumulativeGPA] <2 И [SemesterGPA]> = 2 И [CumulativeCreditHours]> = 12»CP ", IIf ([CurrentStatus] =" P "И [CumulativeGPA]> = 2 И [SemesterGPA] <2 И [CumulativeCreditHours]> = 12," SPCP ", IIf ([CurrentStatus] =" P "И [CumulativeGPA]> = 2 И [CumulativeCreditHours]> = 12, «RP», IIf ([CurrentStatus] = «P» И [CumulativeGPA] <2 И [SemesterGPA] <2 И [CumulativeCreditHours]> = 12, IIf (IsNull ([PriorSuspension]), "S (FD)", "D (SD)"), "None")))))))))
Для нашего примера рекомендуемым действием Джона Доу будет 'P', посколькуего текущий статус - 00, у него более 24 накопительных кредитов, а его совокупный gpa - от 1,7 до 1,99.
Теперь к проблеме: я хотел бы иметь возможность сделать отчет, который можно отфильтровать по рекомендуемому действию.Я подробно описал проблемы, которые у меня были ранее, но вкратце, то, как я настраиваю отчеты сейчас (информация отображается в подотчете внутри отчета, который основан на таблице StudentData, чтобы обеспечить вышеупомянутыезапросы с StudentID) не позволяют мне сделать это, потому что поле, по которому я хочу фильтровать, существует в дополнительном отчете, а не в основном отчете (и вы не можете установить свойства фильтра для подчиненного отчета).
Есть идеи?