SSRS-使用硬编码值匹配数据集值

问题描述 投票:0回答:2

我正在尝试创建RDL文件,并且需要tablix才能以以下格式显示。

这是我希望结果显示的样子

This is how I want the results to look

粗体为硬编码值。这就是数据集中SELECT语句的输出的外观

SQL输出

SQL Output

我不知道如何使从数据库输出的值与RDL文件中的硬编码值匹配。 “天”字段代表当月的某天,“数字”字段代表当日的销售数量。上面的示例显示,在该月的第一天,有100笔交易。我需要tablix以该特定格式输出。

如果当天不在SQL输出中(当天没有销售),我希望它输出空白和/或0。

任何想法如何实现?

reporting-services ssrs-tablix rdl
2个回答
0
投票

使用CTE为您需要的每一天创建行,然后加入结果。 CTE的起点可能是:

;WITH nums AS
   (SELECT 1 AS value
    UNION ALL
    SELECT value + 1 AS value
    FROM nums
    WHERE nums.value <= 30)
SELECT *
FROM nums

然后您可能要根据所查看的月份来修改总天数。


0
投票

您可以使用查找来执行此操作,但是您需要在每个单元格中对查找进行硬编码。例如对于第1天

=lookup(cint(1),Fields!Day.Value,Fields!Num.Value,"Dataset1")

一种更快的方法是在前十天过滤的数据集上创建tablix:

=Switch(
Fields!DAY.Value <= 10 and Fields!DAY.Value >=1,"Include",
True,"Exclude"
)

在天上创建行组,然后使用天和数字创建一列,并使用以下查询创建具有Fields!DAY.Value + 10和Fields!DAY.Value + 20的列:

=lookup(Fields!DAY.Value+10,Fields!DAY.Value,Fields!NUM.Value,"DataSet1")
=lookup(Fields!DAY.Value+20,Fields!DAY.Value,Fields!NUM.Value,"DataSet1")
© www.soinside.com 2019 - 2024. All rights reserved.