前言:我有一个交叉表,如下所示:
行组:月,从一月到十二月;
列组:名称;
列总计和行总计。
它实际上显示了在一个参数年中,DB中每个人花费的总金额。
我的数据源是一个Postgres数据库,我正在用查询检索数据。
在我的数据库中,我使用了一些“空白”记录,用于部分提取:因为我需要显示所有月份,并且我正在运行这个示例,例如在5月,我无论如何都需要显示从1月到12月的月份。
我的数据库看起来是这样的:
ID | NAME | MONTH | YEAR | MONEY
1 | Marco | January | 2014 | 150.0
2 | Marco | February | 2014 | 80.0
3 | Marco | March | 2014 | 135.5
4 | Marco | April | 2014 | 50.0
5 | Marco | May | 2014 | 200.0
6 | | June | 2014 | 0.0
7 | | July | 2014 | 0.0
8 | | August | 2014 | 0.0
9 | | September | 2014 | 0.0
10 | | October | 2014 | 0.0
11 | | November | 2014 | 0.0
12 | | December | 2014 | 0.0
前5行是一个“常规”记录的示例,其他行是关于“黑客”的,我需要一个12个月的报表交叉表。
问题:如果我从1月到11月运行此报表,此解决方案会将我带到一个具有空列的交叉表表。如果填写的是十二月,则不显示任何空白列。
原样:
| | Marco | Mario | Luigi | Total
January | 0.0 | 150.0 | 150.0 | 150.0 | 450.0
February | 0.0 | 80.0 | 80.0 | 80.0 | 240.0
March | 0.0 | 135.5 | 135.5 | 135.5 | 406.5
April | 0.0 | 50.0 | 50.0 | 50.0 | 150.0
May | 0.0 | 200.0 | 200.0 | 200.0 | 600.0
June | 0.0 | 0.0 | 0.0 | 0.0 | 0.0
July | 0.0 | 0.0 | 0.0 | 0.0 | 0.0
August | 0.0 | 0.0 | 0.0 | 0.0 | 0.0
September | 0.0 | 0.0 | 0.0 | 0.0 | 0.0
October | 0.0 | 0.0 | 0.0 | 0.0 | 0.0
November | 0.0 | 0.0 | 0.0 | 0.0 | 0.0
December | 0.0 | 0.0 | 0.0 | 0.0 | 0.0
TOTAL | 0.0 | 615.5 | 615.5 | 615.5 | 1846.5
期望值:
| Marco | Mario | Luigi | Total
January | 150.0 | 150.0 | 150.0 | 450.0
February | 80.0 | 80.0 | 80.0 | 240.0
March | 135.5 | 135.5 | 135.5 | 406.5
April | 50.0 | 50.0 | 50.0 | 150.0
May | 200.0 | 200.0 | 200.0 | 600.0
June | 0.0 | 0.0 | 0.0 | 0.0
July | 0.0 | 0.0 | 0.0 | 0.0
August | 0.0 | 0.0 | 0.0 | 0.0
September | 0.0 | 0.0 | 0.0 | 0.0
October | 0.0 | 0.0 | 0.0 | 0.0
November | 0.0 | 0.0 | 0.0 | 0.0
December | 0.0 | 0.0 | 0.0 | 0.0
TOTAL | 615.5 | 615.5 | 615.5 | 1846.5
问题:如何隐藏“空白”栏?有没有办法让它倒塌?
编辑:我试图使“blank”列完全为空,编辑如果名称列组也为“blank”则将显示“blank”的度量值的表达式。然后在column、measure和total单元格中,我都选中了“如果为空则删除”选项,但没有结果。在几个月和交叉表的其余部分之间还有空间。
我现在得到的是:
| | Marco | Mario | Luigi | Total
January | | 150.0 | 150.0 | 150.0 | 450.0
February | | 80.0 | 80.0 | 80.0 | 240.0
March | | 135.5 | 135.5 | 135.5 | 406.5
April | | 50.0 | 50.0 | 50.0 | 150.0
May | | 200.0 | 200.0 | 200.0 | 600.0
June | | 0.0 | 0.0 | 0.0 | 0.0
July | | 0.0 | 0.0 | 0.0 | 0.0
August | | 0.0 | 0.0 | 0.0 | 0.0
September | | 0.0 | 0.0 | 0.0 | 0.0
October | | 0.0 | 0.0 | 0.0 | 0.0
November | | 0.0 | 0.0 | 0.0 | 0.0
December | | 0.0 | 0.0 | 0.0 | 0.0
TOTAL | | 615.5 | 615.5 | 615.5 | 1846.5
最佳答案
无法使用iReport删除交叉表上的列。
关于postgresql - 如何动态删除交叉表列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26503646/