前言:我有一个交叉表,如下所示:
行组:月,从一月到十二月;
列组:名称;
列总计和行总计。
它实际上显示了在一个参数年中,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/

10-12 20:42