我在SSR中有一些参数值,我正在基于这些副标书填充数据集。无论如何,我有一个称为员工的参数,带有员工名称和代码值。是"全部",因此当用户单击全部时,显示了所有员工详细信息。
我想根据员工价值更改我的查询
我已经在Stackoverflow中检查了类似的问题,他们说如果条件但是我已连接到AS400,并且在查询设计师中不接受条件。
问题在于我的查询的这一部分,SLSMCD是推销员代码。此查询适用于所有conditon,即所有员工)
) (SLSMCD IN
(SELECT WEMEMCD
FROM VHTEMPL VHTEMPL_1
WHERE (WEMEMCD = ?) OR
(WEMTLCD = ?) OR
(WEMGLCD = ?) OR
(WEMBHCD = ?) OR
(WEMTCMCD = ?) OR
(WEMGCMCD = ?) OR
(WEMBCMCD = ?) OR
(WEMHOTLCD = ?) OR
(WEMHOGLCD = ?) OR
(WEMHHODCD = ?) OR
(WEMGHODCD = ?)))
现在,对于个人员工,查询应为
(SLSMCD IN
(SELECT WEMEMCD FROM VHTEMPL VHTEMPL_1 WHERE (WEMEMCD = ?)
我尝试使用和/或条件将事物与().e.g
分组(SLSMCD IN (SELECT WEMEMCD FROM VHTEMPL VHTEMPL_1
WHERE (WEMEMCD = ? and ? <> 'ALL')
但是SSRS自动删除(),并使其像(Wememcd =?)和(?&lt;>'all)
我使用数据集中的表达式解决了此问题
在数据集中去选择查询参数转到要放置条件的各个领域
=IIF(Parameters!PRSalesManCode.Value <>
"ALL",Parameters!PRSalesManCode.Value,Parameters!PRSalesMan.Value)
shere参数!prsalesman.value是我从aspx页面发送的值,并将其存储为隐藏的paraemeter
参数!prsalesmancode.value是报告下拉的选定值
因此,我将所有内容比较并根据条件
传递值注意:我观察到AS400中没有IF概念,因此我们在SSR中形成数据集时无法在查询中使用它(不完全确定)