Мой отчет в SSRS принимает несколько студентов. Пользователь хочет, чтобы отчет возвращал студента (в своей собственной строке), даже если запрос не возвращает никаких данных I.E. идентификатор недействителен Таким образом, если пользователь вводит 10 студентов и 5 из них недействительны, возвращают данные для 5 «хороших» IDS и возвращают 5 строк, где первый столбец будет недопустимым, а второй столбец будет иметь «недопустимый идентификатор». "сообщение.
Я попытался UNION с параметром multiselect и скомпилированным параметром JOINed, но я не могу понять, как получить каждый недопустимый идентификатор в отдельной строке.
SELECT ODSMGR.STUDENT_COURSE.ID,
ODSMGR.STUDENT_COURSE.Name,
ODSMGR.ACADEMIC_STUDY.STUDENT_LEVEL,
SUM(ODSMGR.STUDENT_COURSE.COURSE_CREDITS) CREDITS,
NVL(SUM(AMOUNT),0) Fees,
ODSMGR.PERSON_DETAIL.EMAIL_PREFERRED_ADDRESS,
EMPLOYEE_POSITION_OSU.SUPERVISOR_NAME,
EMPLOYEE_POSITION_OSU.SUPERVISOR_ID,
MST_PERSON.EMAIL_PREFERRED_ADDRESS SupervisorEmail
FROM ODSMGR.STUDENT_COURSE
INNER JOIN ODSMGR.ACADEMIC_STUDY
ON ODSMGR.STUDENT_COURSE.PERSON_UID = ODSMGR.ACADEMIC_STUDY.PERSON_UID
AND ODSMGR.STUDENT_COURSE.ACADEMIC_PERIOD = ODSMGR.ACADEMIC_STUDY.ACADEMIC_PERIOD
INNER JOIN ODSMGR.PERSON_DETAIL
ON ODSMGR.STUDENT_COURSE.PERSON_UID = ODSMGR.PERSON_DETAIL.PERSON_UID
LEFT OUTER JOIN AR_DETAIL_OSU
ON AR_DETAIL_OSU.PIDM = ODSMGR.STUDENT_COURSE.PERSON_UID
AND TERM_CODE = ODSMGR.STUDENT_COURSE.ACADEMIC_PERIOD
AND detail_code = 'INC1'
LEFT OUTER JOIN EMPLOYEE_POSITION_OSU
ON EMPLOYEE_POSITION_OSU.PERSON_UID = ODSMGR.STUDENT_COURSE.PERSON_UID
AND EMPLOYEE_POSITION_OSU.POSITION_STATUS = 'A'
LEFT OUTER JOIN MST_PERSON
ON MST_PERSON.PERSON_UID = EMPLOYEE_POSITION_OSU.SUPERVISOR_ID
WHERE ODSMGR.STUDENT_COURSE.PERSON_UID = :PIDMParameter
and ODSMGR.STUDENT_COURSE.ACADEMIC_PERIOD = :AcademicPeriodCodeParameter
and COURSE_REGISTER_IND = 'Y'
and WITHDRAWN_IND = 'N'
and NVL(ODSMGR.PERSON_DETAIL.CONFIDENTIALITY_IND,'N') = 'N'
GROUP BY ODSMGR.STUDENT_COURSE.ID,
ODSMGR.STUDENT_COURSE.Name,
ODSMGR.ACADEMIC_STUDY.STUDENT_LEVEL,
ODSMGR.PERSON_DETAIL.EMAIL_PREFERRED_ADDRESS,
EMPLOYEE_POSITION_OSU.SUPERVISOR_NAME,
EMPLOYEE_POSITION_OSU.SUPERVISOR_ID,
MST_PERSON.EMAIL_PREFERRED_ADDRESS
Приведенный выше код является просто основным кодом. Я понятия не имею, как заставить его вернуть parms, если нет данных. : PIDMParameter может быть любым числом идентификаторов.