2016-03-13 70 views
0

我正在使用Spotfire构建折线图。所述数据集包括以下字段组成:GROUP BY使用Spotfire

Requirement Project Name Period Score Project Spend 
Req 1  Project 1  3/1/2016 2  750000 
Req 2  Project 1  3/1/2016 3  750000 
Req 3  Project 1  3/1/2016 2  750000 
Req 4  Project 1  3/1/2016 2  750000 
Req 1  Project 1  6/1/2016 2  750000 
Req 2  Project 1  6/1/2016 3  750000 
Req 3  Project 3  6/1/2016 2  500000 
Req 4  Project 3  6/1/2016 2  500000 

在折线图,我对X轴期及我需要SUM(Project Spend)由项目在Y轴上。

例如:

  • 为2016年3月1日上X轴,Y上的值应为750000因为只有一个项目是活动的(项目1)
  • 为2016年6月1日上X轴,Y的值应该是750000 + 500000在该期间两个项目是活跃的(项目1和项目3)

有人可以帮助我与Y轴公式来得到需要的结果?

回答

0

如果所花费的项目中的值始终相同。您可以执行以下操作:

这只适用于条形图,而不适用于折线图。折线图将这些行分隔开来,因此即使您汇总了它,它也不会添加这些值。

X-axis: [Period] 
Y-axis: Max([Project Spend]) 
Color: [Project Name] 

或者,如果您从数据库中获取数据,则可以使用SQL Query将其聚合。

+0

我确实需要为每个项目分开一行,它应该只是一行显示该时间段的项目总数。真正的问题是,我有多个具有相同项目和项目支出的行,所以我不能使用SUM(项目支出),因为它会对所有不是我想要的值进行求和。我想要那个时期的唯一项目的总和 – Rikin

+0

当你有多个项目的需求是相同的项目花费的价值?如果是,则可以限制数据>使用表达式筛选数据。 虽然我仍然认为在导入之前通过在SQL中查询它可能更容易。 – k88

0

首先,你需要添加一个计算的列,以保持每个项目只能有一行:

[unique spend]: If(Min(RowId()) OVER ([Project Name])=RowId(), [Project Spend], null)

然后创建你折线图和用这句话为纵轴:

Sum([unique spend]) over (AllPrevious([Axis.X]))

+0

感谢伴侣。让我试试这个 – Rikin