2016-03-13 72 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