【发布时间】:2014-08-21 07:33:04
【问题描述】:
我正在使用 SQL Server 和 Reporting Services 构建报表。我有一个如下所示的数据集,其中所有列的类型均为VARCHAR:
Line Code Col1 Col2 Col3 Col4
============================================
1 xxx 1.1
1 xxx 2.3
1 xxx 8.7
1 xxx 3.4
2 yyy 5.3
2 yyy !err
2 yyy 6.5
2 yyy 9.1
我有一份报告应该有这样的输出:
Line Code Col1 Col2 Col3 Col4
============================================
1 xxx 1.1 2.3 8.7 3.4
2 yyy 5.3 !err 6.5 9.1
所以我基本上需要对“行”列进行分组,包括组内每一列的第一个非空值。
如果列是数字类型,我可以使用 SUM 来获得所需的结果,但由于我处理的是VARCHAR,所以我不能使用SUM。我也不能将VARCHAR 转换为数值,因为那样的话,如果我的值是非数值(例如在我的示例中由“!err”建议),那么它将不会显示。
我可以使用什么查询来获得所需的结果?
【问题讨论】:
-
虽然您的示例数据没有显示出来,但是给定的行和列可以有多个值吗?给定的行可以有多个代码吗?
-
不,对于每个“行”值,每列中只会出现一个非空值。每个“行”值也不会有多个“代码”值。
标签: sql sql-server tsql reporting-services