Я создал представление, в котором показаны семьи с детьми, которые зарегистрированы в нескольких программах нашего агентства. Нам нужно только увидеть, когда двое детей участвуют в двух разных программах, но в одной семье. Как перенести это представление в службы Reporting Services, как отображать только две группы в группе и скрывать остальные? Например, если в семье Смит есть двое детей - один в Head Start, а другой в Early Head Start, - как мне показать эти строки, но скрыть другие, в которых указан только один ребенок на семью?
В настоящее время яесть два оператора CASE в коде SQL. Один создает столбец, который отображает 1 для каждого вхождения термина программы Start Start и 0 в противном случае. Другой делает то же самое, но для каждого вхождения в программу «Ранний стартовый курс».
Я попытался пойти по другому пути и сжать оба этих оператора CASE в один столбец, сгруппировать их по фамилии и сосчитать 1 на семью. Однако это не дает нам подробных данных, которые нам нужны;нам нужно показать имя и программный термин каждого ребенка.
Я экспериментировал с обоими выражениями CountRows в разделе «Видимость строк» операторов SSRS и IIF в табличном отчете, но я не могу заставить их работать,
КОД SQL:
SELECT CP_Data.dbo.Family.FamilyName,
CP_Data.dbo.vParticipant.PersonName,
CP_Data.dbo.vParticipant.ChildPlusID,
CP_Data.dbo.vParticipant.EnrlStatus,
CP_Data.dbo.vParticipant.ProgramTermAbbreviation,
CASE WHEN ProgramTermAbbreviation = 'HS20' THEN 1 ELSE 0 END AS HSIdentifier,
CASE WHEN ProgramTermAbbreviation = 'EH20' THEN 1 ELSE 0 END AS EHSIdentifier,
CP_Data.dbo.vParticipant.EnrollmentDate
FROM CP_Data.dbo.vParticipant
LEFT OUTER JOIN CP_Data.dbo.FamilyMembership ON CP_Data.dbo.vParticipant.ParticipantPersonID = CP_Data.dbo.FamilyMembership.PersonID
RIGHT OUTER JOIN CP_Data.dbo.Family ON CP_Data.dbo.FamilyMembership.FamilyID = CP_Data.dbo.Family.FamilyID
WHERE (CP_Data.dbo.vParticipant.ProgramTermAbbreviation = 'HS20'
OR CP_Data.dbo.vParticipant.ProgramTermAbbreviation = 'EH20')
AND (CP_Data.dbo.vParticipant.EnrlStatus = 'Enrolled'
OR CP_Data.dbo.vParticipant.EnrlStatus LIKE 'Drop%');
В конце я хочу, чтобы в отчете были перечислены только семьи, у которых есть ребенок, в обеих программах, а остальные скрыты. Должен ли я повторно выполнить свои операторы CASE или реализовать строку кода в параметре «Видимость строки» для SSRS? В настоящее время я не уверен, как это сделать.