![](/img/trans.png)
[英]How do you convert a stored procedure using dynamic SQL into a non-dynamic SQL one(SSRS)?
[英]How would you display a pivot table generated by a stored procedure that uses dynamic SQL as an SSRS report if the final number of columns is unknown?
我有一个存储过程,该存储过程构造了问答式表单的动态数据透视表。 表格上的每个问题都分配给一个部分。 同一表单有多个版本,并且表单的每个新版本都将淘汰现有列或添加一个新列。 我想创建一个SSRS报告,该报告将允许用户选择一个部分作为参数,并且将显示与该部分相关的所有问题。
例如,让我们使用以下数据:
+============+=============+================+==============+
| Form_id | Item | Value | Section_Code |
+============+=============+================+==============+
| 123 | F_Name | Joe | Bio |
| 123 | L_Name | Smith | Bio |
| 123 | Occupation | Plumber | Professional |
| 123 | Fav_Color | Red | Preference |
| 456 | F_Name | Harry | Bio |
| 456 | L_Name | Potter | Bio |
| 456 | Occupation | Wizard | Professional |
| 456 | Fav_Color | Blue | Preference |
| 789 | F_Name | Dave | Bio |
| 789 | L_Name | Grohl | Bio |
| 789 | Occupation | Musician | Professional |
| 789 | Fav_Color | Green | Preference |
| 789 | Fav_Food | Capn Crunch | Preference |
| 789 | Birth_City | Phoenix | Bio |
| 789 | Has_Pets | Yes | Animals |
+============+=============+================+==============+
form_id为123和456的表单具有相同的版本(即,相同的问题),但是form_id 789使用的是表单的新版本。 新版本增加了3个问题。 Fav_Food,Birth_City和Has_Pets。
我创建了一个存储过程,该存储过程将使用动态SQL创建数据透视表,以返回一种特定形式的问题和答案的列表。 例如,调用“ Bio”部分的存储过程将产生:
+=============+==============+=============+===============+
| Form_id | F_Name | L_Name | Birth_City |
+=============+==============+=============+===============+
| 123 | Joe | Smith | NULL |
| 456 | Harry | Potter | NULL |
| 789 | Dave | Grohl | Phoenix |
+=============+==============+=============+===============+
如果发布了新版本的表格并将2个问题(即列)添加到“生物”部分,则存储过程将显示上述数据以及两个新问题。 此功能是否可以显示为SSRS报告?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.