Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services SSRS将列分组以显示列的最小数量_Reporting Services - Fatal编程技术网

Reporting services SSRS将列分组以显示列的最小数量

Reporting services SSRS将列分组以显示列的最小数量,reporting-services,Reporting Services,我正在尝试按行和列对报告进行分组,这很好 我想展示至少5列,可能更多,这取决于组 是否有办法设置报告上显示的最少列数? 此外,我是否可以定义一个宽度,如20厘米或8英寸,并让列在该范围内均匀调整其宽度?报告上显示多少列取决于您的数据。如果查询没有返回五个不同的值,则不会得到五列。可以使用的一个技巧是使用UNION将虚拟记录添加到查询中,直到有足够的不同值为止。例如: SELECT MonthName, Amount FROM Table1 UNION ALL SELECT 'JAN' AS Mo

我正在尝试按行和列对报告进行分组,这很好

我想展示至少5列,可能更多,这取决于组

是否有办法设置报告上显示的最少列数?
此外,我是否可以定义一个宽度,如20厘米或8英寸,并让列在该范围内均匀调整其宽度?

报告上显示多少列取决于您的数据。如果查询没有返回五个不同的值,则不会得到五列。可以使用的一个技巧是使用UNION将虚拟记录添加到查询中,直到有足够的不同值为止。例如:

SELECT MonthName, Amount FROM Table1
UNION ALL
SELECT 'JAN' AS MonthName, 0 AS Amount
UNION ALL
SELECT 'FEB' AS MonthName, 0 AS Amount
UNION ALL
SELECT 'MAR' AS MonthName, 0 AS Amount
UNION ALL
SELECT 'APR' AS MonthName, 0 AS Amount
UNION ALL
SELECT 'MAY' AS MonthName, 0 AS Amount
也许表1也会给你一些或所有这些月的时间。但现在您知道,结果集将至少包含足够多的独立MonthNames,以便为您提供五列。您还必须小心确保您的虚拟记录不会干扰报告的主要工作,例如汇总总金额


你问了一个关于列宽的单独问题。尝试查找可以设置列宽的表达式。您需要知道数据当前返回的列数。SQL可能会变得复杂,但一种方法可能是将查询放入CTE公共表表达式中,然后还将COUNTDISTINCT MonthName作为MonthColumnCount返回。您可以使用MonthColumnCount的第一个值来计算所需的列宽。这可能会花费比您所值的更多的精力。

好的,thx我会看看我能做多少:

在我的示例中,我必须报告基于周和函数注册的小时数


如果我的周是行,函数是列,问题是我不知道有多少具有不同函数的人在特定的月/周/年/中注册了小时数:

我会尝试为每个星期添加零小时的虚拟记录,以及您希望在报告中看到的函数。祝你好运