我正在尝试创建RDL文件,并且需要tablix
才能以以下格式显示。
粗体为硬编码值。这就是数据集中SELECT
语句的输出的外观
我不知道如何使从数据库输出的值与RDL文件中的硬编码值匹配。 “天”字段代表当月的某天,“数字”字段代表当日的销售数量。上面的示例显示,在该月的第一天,有100笔交易。我需要tablix
以该特定格式输出。
如果当天不在SQL输出中(当天没有销售),我希望它输出空白和/或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
然后您可能要根据所查看的月份来修改总天数。
您可以使用查找来执行此操作,但是您需要在每个单元格中对查找进行硬编码。例如对于第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")