我有一个共享相同表格和过滤器的simalary(但不完全相同)报告。我想创建一个并在带有参数的SELECT数据集之间切换而不是编写invidual存储过程。
我尝试过类似的事情:
IF @UseDataGroup = 1 --from ssrs
BEGIN
SELECT
IF transaction_type IN (10, 27)
.....
END
IF @UseDataGroup = 2
BEGIN
SELECT
IF transaction_type IN (11)
.....
END
FROM
WHERE
..遗憾地返回错误'多部分标识符transaction_type无法绑定' 任何帮助都会受到重视。感谢。
答案 0 :(得分:0)
您可以在transaction_type
声明的WHERE
子句中使用来自SSRS的传入过滤器和SELECT
上的过滤器
SELECT YourFields
FROM YourTable
WHERE (@UseDataGroup = 1 AND transaction_type IN (10, 27))
OR (@UseDataGroup = 2 AND transaction_type = 11)
--add additional filters as needed
答案 1 :(得分:0)
示例CASE
声明
DECLARE @UseDataGroup INT
DECLARE @transaction_type INT
SET @UseDataGroup = 1
SET @transaction_type = 10
IF @UseDataGroup = 1 --from ssrs
BEGIN
SELECT
CASE WHEN @transaction_type IN (10, 27)
THEN 'Success'
END
END
OR
SELECT
CASE WHEN @transaction_type IN (10, 27) AND @UseDataGroup = 1
THEN 'Success'
END