2

我需要报表查看器中的表格来显示从水平表格中的数据源中提取的项目列表。

数据源只包含一个 SQL 列中包含的字符串列表。

水平报表表格示例

到目前为止,我尝试过的表格仅将其显示在列中。

非常感谢!

4

1 回答 1

0

这是我对要求的理解。从表中的项目列表中选择并在水平表中报告它们。表中的值可能未知,也可能未知。

在我的示例中,我从选择中构建单个字符串,从项目列表中生成水平连续字符串到变量中。

然后我使用新变量构建一个动态 SQL 语句,并从我想要的表中选择一个。在动态 SQL 中,我做了一个简单的替换,因此 PIVOT 的格式正确。这解决了事先不知道表中存在哪些数据的问题。Pivot 要求您使用字段值标记列,如果表中的值未知或不断变化,则可能会遇到挑战。

    DECLARE @FieldValueString VARCHAR(MAX)
        SELECT @FieldValueString = Coalesce(@FieldValueString + ',', '') + cast(ssctab as         varchar) from RA_sysScreen 

    PRINT @FieldValueString
    DECLARE @sql VARCHAR(MAX)
    SET @sql = 'SELECT * FROM
                (SELECT ssctab FROM [RA_sysScreen])qry
                PIVOT (MAX(ssctab) FOR ssctab in (['+REPLACE(@FieldValueString,',','],[')+']))         as pvt'
    print @sql
    EXEC(@sql)

希望这可以帮助。我期待在这个问题上看到其他答案

于 2014-08-08T22:35:12.733 回答