use*_*925 2 sql-server reporting-services
SELECT
'PERSONFULLNAME' = LASTNM --+ ', '+ FIRSTNM +' ' + COALESCE(MIDDLEINITIALNM, '')
,PERSONNUM
,EMPLOYMENTSTATUS
,HOMELABORLEVELNAME5
,ISWFCTKEMPLICENCE
,ISWFCSSELICENCE
,ISWFCMGRLICENCE
,ISWFCSCHEDULERLIC
,USERACCOUNTNM
,USERACCOUNTSTATUS
,'HCM_Cost_Center_Manager_Name' = n2.NAME
,TIMEENTRYMETHODNM
FROM dbo.VP_PERSON p
LEFT OUTER JOIN PSHCMirror.dbo.PS_JPM_PROFILE jp
ON SUBSTRING(jp.JPM_PROFILE_ID,7,6) = SUBSTRING(p.HOMELABORLEVELNAME5,1,6)
AND jp.JPM_JP_TYPE = 'BU_DEPT'
LEFT OUTER JOIN PSHCMirror.dbo.PS_JPM_JP_ITEMS jpi
ON jpi.JPM_PROFILE_ID = jp.JPM_PROFILE_ID
AND jpi.JPM_CAT_TYPE = 'HRIS_CNTCT2'
LEFT OUTER JOIN
(
SELECT n1.EMPLID, n1.NAME, 'row_nbr' = ROW_NUMBER() OVER (PARTITION BY n1.EMPLID ORDER BY n1.EFFDT DESC, n1.NAME_TYPE DESC)
FROM PSHCMirror.dbo.PS_NAMES n1
) n2
ON n2.EMPLID = jpi.JPM_PERSON_ID_1
AND n2.row_nbr = 1
WHERE USERACCOUNTSTATUS = 'Active'
AND EMPLOYMENTSTATUS = 'Active'
AND (
@Manager = 'All' OR n2.NAME IN (@Manager)
)
order by 1
Run Code Online (Sandbox Code Playgroud)
我有一个SSRS报告,试图将名称列表传递给参数,并且默认设置为'all'。
设置参数的“默认值”以使用与“可用值”相同的查询,因为名称列表过多。(如果我的清单很小,这将起作用,它将自动选中“全选”)
我知道错误来自@Manager = 'All' OR n2.NAME IN (@Manager)
,但我不知道任何其他方法可以使它起作用。
由于@Manager
是一个多值参数,因此您需要IN
在条件中使用而不是=
。尝试将WHERE子句的该部分更新为:
WHERE ('All' IN (@Manager) OR n2.NAME IN (@Manager))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4817 次 |
最近记录: |