我正在尝试按行和列对报表进行分组,这正常。
我想至少(例如)显示5列,可能更多,具体取决于组。
有没有办法设置报告中显示的最小列数? 此外,我可以定义一个宽度,如20厘米或8英寸,并让列在该范围内均匀调整其宽度?
答案 0 :(得分:0)
报告中显示的列数取决于您的数据。如果您的查询未返回五个不同的值,则不会获得五列。您可以使用的一个技巧是使用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
也许Table1也会给你一些或所有这些月份。但是现在您知道您的结果集将包含至少足够的不同MonthNames,以便为您提供五列。您还必须小心确保您的虚拟记录不会干扰报告的主要工作,例如总计总金额。
您问了一个关于列宽的单独问题。尝试寻找可以设置列宽的“表达式”。您需要知道数据当前返回的列数。 SQL可能会变得复杂,但一种方法可能是将查询放入CTE(公用表表达式),然后还将COUNT(DISTINCT MonthName)作为MonthColumnCount返回。您可以使用MonthColumnCount的(First value)来计算所需的列宽。这可能会花费更多的努力而不是你的价值。
答案 1 :(得分:0)
好的,我会看到我可以得到多远:)
在我的例子中,我必须根据周和函数报告注册的小时数。
我的周数是行,而功能是列,问题是我不知道有多少人在不同的特定月份/周/年/月份注册了几个小时... :)。