sql-server - 将 SSRS 参数作为参数传递给 Query
问题描述
最近在 SSRS 中有一种情况,我无法根据我的要求找出正确的逻辑,有人可以帮我解决我的逻辑问题。
我正在尝试将参数值传递给 SSRS 数据集查询。请参考以下查询。当我尝试手动执行查询时,它会运行,但是当我在其中传递参数时,没有为我提供所需的输出,请参阅我在 SSMS 中执行查询的屏幕截图。
数据集查询
Select * from(
SELECT @Defaulter_Type AS Priority_Count, Priority
FROM Quality_Portal_Data_Fact_Graph) temp
SQL 查询
SELECT [NEW_PID_2],[Priority_1]
FROM [OneWindowPRD].[dbo].[Quality_Portal_Data_Fact_Graph]
虽然,当我尝试在其中传递参数时,我发现了一件事。它使用单个 cort 传递值,因此它显示的数据是下面提到的形式。
有人可以建议我该怎么做才能删除这些单一的cort。请建议任何其他方法或逻辑来选择用户给出的查询列
我已经尝试过 SUBSTRING 它不起作用。请参考截图
从 Quality_Portal_Data_Fact_Graph 中选择 QUOTENAME(SUBSTRING(@Defaulter_Type, 2, LEN(@Defaulter_Type) - 2)) 作为 Count_Priority
我试图在查询中传递的参数是用户传递的 column_name,它是单值列。请参考截图是否有人有任何建议或其他方法
解决方案
您是否尝试执行以下操作:
DECLARE @sql varchar(1000) =
'
Select * from(
SELECT ' + QUOTENAME(@Defaulter_Type) + ' AS Priority_Count, Priority
FROM Quality_Portal_Data_Fact_Graph) temp
'
EXEC (@sql)
这使用动态 SQL 使用您的参数作为列名来构建查询字符串。然后它执行该查询以生成您的结果集。
您当前的查询只会选择 的值作为每一行@Defaulter_Type
的字段值。Priority_Count
此外,如果您的参数包含在要删除的引号中,请使用:
DECLARE @sql varchar(1000) =
'
Select * from(
SELECT ' + QUOTENAME(SUBSTRING(@Defaulter_Type, 2, LEN(@Defaulter_Type) - 2)) + ' AS Priority_Count, Priority
FROM Quality_Portal_Data_Fact_Graph) temp
'
EXEC (@sql)
推荐阅读
- reactjs - 警告:通过回调页面访问应用程序并从此处更新上下文时更新状态转换
- android - 在我的片段示例中验证 Android XML 文件中的资源引用
- server - 错误“填充数据库时出错:无法执行查询:BLOB/TEXT 列 'ignoremeta' 不能有默认值”
- android - 如何使用 Fuel for Kotlin 发布多部分/表单数据?
- assembly - 完成除法后的余数存储在哪里?
- python - 我在 to_csv 和 pandas 中使用“sep ='x'”错误吗?
- node.js - 用于同一 Mongoose 集合上的接口的 GraphQL 解析器
- c# - Unity 2D - 访问 GetComponent 的变量
作为参数发送 - css - 在最小宽度断点中嵌套方向断点
- java - databasehelper CRUD 函数