我能够在 SSRS 中填充一个参数下拉列表,该下拉列表从数据集中获取活动列表。虽然我遇到的问题是在数据中有一个 activitylabel 字段,它只包含在 dimact 表中,并且当任何活动的标签值为“versional”时,我想要一个 case 语句将其替换为父活动的名称默认子活动名称。连接数据的字段是 activity_pk 和 activityfk,获得正确父项的字段是 prntactfk。下面是一个数据示例,我希望 2 个测试课程行与下拉列表中查询中使用的 DISTINCT 合并。
Example Data: (Name - Label)
CourseA-Course (Not Versional so leave alone)
Test Course-Versional (Parent is Test Course Parent)
Test Course (1.1)-Versional (Parent is Test Course Parent)
CourseB-Document (Not Versional so leave alone)
在不使用 dimact1.ActivityLabel = 'Versional 的情况下在 SQL 中工作的查询:
SELECT DISTINCT act1.activityname
FROM act1
INNER JOIN dimact1 on dimact1.ActivityFK = act1.Activity_PK
WHERE
CASE
WHEN dimact1.ActivityLabel = 'Versional'
AND EXISTS (
SELECT dimact2.PrntActFK
FROM dimact2
WHERE dimact2.activitylabel = 'Versional'
AND dimact2.PrntActFK = act1.Activity_PK
) THEN 1
END = 1
ORDER BY act1.activityname ASC