編集しようとしているかなり複雑なレポートがあります。以下は、レポートのスクリーンショットです。
「グループにない番号」がn/aまたは0であるすべての行を除外する必要があります。タブリックスのプロパティでフィルタオプションを使用して除外しようとしましたが、エラーのために除外できません:集計関数を使用できませんデータセットフィルターで。
以下は、「グループにない番号」フィールドを構成する式のコードです。
=iif(sum(iif(left(Fields!crs_group.Value,1) = "G",1,0),"GrpCourse")=0,
"n/a",
sum(iif(Fields!crs_group.Value="Enrolled on Course",1,0)) - sum(iif(left(Fields!crs_group.Value,1) = "G",1,0)))
また、SQLクエリでこれらの行を除外しようとしましたが、あまりうまくいきませんでした。以下は、クエリ内の行を除外するための私の試みです。
SELECT
sub.course ,
sub.crs_group ,
m.m_reference ,
me.e_status ,
me.e_id ,
s.s_studentreference ,
p.p_forenames ,
p.p_surname ,
pcd.p_surname + ',' + pcd.p_forenames AS course_dir ,
ISNULL(COUNT(*) - SUM(CASE WHEN LEFT(crs_group, 1) = 'G' THEN 1
END), 1) AS NumberNotInGroups
FROM
msql.unitesnapshot.dbo.capd_moduleenrolment AS me
INNER JOIN msql.unitesnapshot.dbo.capd_module AS m
ON me.e_module = m.m_id
LEFT JOIN msql.unitesnapshot.dbo.capd_staff scd
ON m.m_modulesupervisor = scd.s_id
LEFT JOIN msql.unitesnapshot.dbo.capd_person pcd
ON scd.s_id = pcd.p_id
INNER JOIN msql.unitesnapshot.dbo.capd_student s
ON me.e_student = s.s_id
INNER JOIN msql.unitesnapshot.dbo.capd_person p
ON s.s_id = p.p_id
INNER JOIN (
SELECT
m.m_id ,
CASE WHEN m.m_reference NOT LIKE '%G_'
THEN m.m_reference
ELSE LEFT(m.m_reference,
CHARINDEX('G', m.m_reference) - 1)
END AS course ,
CASE WHEN m.m_reference NOT LIKE '%G_'
THEN 'Enrolled on Course'
ELSE RIGHT(m.m_reference, 2)
END AS crs_group
FROM
unitesnapshot.dbo.capd_module m
) sub
ON sub.m_id = me.e_module
WHERE
me.e_status = 'A'
AND LEFT(m.m_reference, 2) = '12'
AND SUBSTRING(m.m_reference, 7, 2) IN ( 'VF', 'AB', 'FB' )
GROUP BY
sub.course ,
sub.crs_group ,
m.m_reference ,
me.e_status ,
me.e_id ,
s.s_studentreference ,
p.p_forenames ,
p.p_surname ,
pcd.p_surname + ',' + pcd.p_forenames
HAVING
COUNT(*) - SUM(CASE WHEN LEFT(crs_group, 1) = 'G' THEN 1
ELSE 0
END) <> 0
ORDER BY
p.p_surname ,
p.p_forenames
ただし、レポートにn / a値を持つ行が含まれているため、これは機能しません。グループはG_で終わるコースコードによって定義されますが、一部のコースにはグループがないため、これらは「n/a」と表示されます。申し訳ありませんが、これが意味をなさない場合は、本当に助けが必要です。
ありがとう