基礎となる SQL Server 2008 Analysis Services データベースを使用して、Team Foundation Server 2010 のレポートを作成しようとしています。キューブ 'Team System' は、TFS 2010 レポートに付属するキューブです。
私の問題です。FactWorkItemHistory の StateChangeCount メジャーを使用しようとしました。ワークアイテムの状態が変化しない期間もありますが、その他の変化はあります。そのため、後で示すように、StateChangeCount が NULL のファクト行がいくつかあります。
基礎となるファクト行に NULL 値が含まれていても、State Change Count メジャーは 0 の値を生成することがあります。このメジャーは、[FactWorkItemHistory].[StateChangeCount] の SUM として定義されます。NULLS の SUM が 0 を返すのは設計によるものですか、それとも何か不足していますか? 問題の期間は 2013 年 3 月 1 日 (3 月) と 2013 年 5 月 2 日 (5 月) です。
SELECT
[DateSK],
COUNT(*) AS COUNT,
SUM([StateChangeCount]) AS SUM
FROM
[Tfs_Warehouse].[dbo].[FactWorkItemHistory]
WHERE
[WorkItemSK] IN (SELECT [WorkItemSK] FROM [Tfs_Warehouse].[dbo].[DimWorkItem] WHERE [System_WorkItemType] = 'Bug')
GROUP BY
[DateSK]
出力は次のとおりです。
DateSK COUNT SUM
---------------------------------------
2011-05-05 00:00:00.000 13 7
2012-03-01 00:00:00.000 2 NULL
2012-09-28 00:00:00.000 60 2
2013-05-02 00:00:00.000 16 NULL
2013-05-06 00:00:00.000 9 9
クエリ:
SELECT
[DateSK],
[StateChangeCount]
FROM
[Tfs_Warehouse].[dbo].[FactWorkItemHistory]
WHERE
[WorkItemSK] IN (SELECT [WorkItemSK] FROM [Tfs_Warehouse].[dbo].[DimWorkItem] WHERE [System_WorkItemType] = 'Bug')
ORDER BY
[DateSK]
与えます:
DateSK StateChangeCount
---------------------------------------
2011-05-05 00:00:00.000 1
2011-05-05 00:00:00.000 NULL
2011-05-05 00:00:00.000 NULL
2011-05-05 00:00:00.000 1
2011-05-05 00:00:00.000 NULL
2011-05-05 00:00:00.000 1
2011-05-05 00:00:00.000 NULL
2011-05-05 00:00:00.000 1
2011-05-05 00:00:00.000 NULL
2011-05-05 00:00:00.000 1
2011-05-05 00:00:00.000 NULL
2011-05-05 00:00:00.000 1
2011-05-05 00:00:00.000 1
2012-03-01 00:00:00.000 NULL
2012-03-01 00:00:00.000 NULL
2012-09-28 00:00:00.000 1
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 1
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2012-09-28 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-02 00:00:00.000 NULL
2013-05-06 00:00:00.000 1
2013-05-06 00:00:00.000 1
2013-05-06 00:00:00.000 1
2013-05-06 00:00:00.000 1
2013-05-06 00:00:00.000 1
2013-05-06 00:00:00.000 1
2013-05-06 00:00:00.000 1
2013-05-06 00:00:00.000 1
2013-05-06 00:00:00.000 1
そして最後に MDX クエリ:
SELECT
NON EMPTY { [Measures].[State Change Count] } ON COLUMNS,
NON EMPTY { ([Date].[Date].[Date].ALLMEMBERS * [Work Item].[System_State]. [System_State].ALLMEMBERS ) }
ON ROWS FROM (
SELECT (
{ [Work Item].[System_WorkItemType].&[Bug] }
)
ON COLUMNS FROM [Team System])
WHERE ( [Work Item].[System_WorkItemType].&[Bug] )
結果:
StateChangeCount
---------------------------------------------
2011-05-05 Assigned 4
2011-05-05 For verification 2
2011-05-05 In progress 1
2012-03-01 Assigned 0
2012-09-28 Assigned 2
2013-05-02 Assigned 0
2013-05-06 Assigned 9
その間
SELECT
NON EMPTY { [Measures].[State Change Count] } ON COLUMNS,
NON EMPTY { ([Date].[Date].[Date].ALLMEMBERS * [Work Item].[System_State]. [System_State].ALLMEMBERS ) }
ON ROWS FROM (
SELECT (
{ [Work Item].[System_WorkItemType].&[Bug] }
)
ON COLUMNS FROM [Team System])
WHERE ( [Work Item].[System_WorkItemType].&[Bug] )
は:
State Change Count
------------------------------------
May 2011 7
June 2011 (null)
July 2011 (null)
August 2011 (null)
September 2011 (null)
October 2011 (null)
November 2011 (null)
December 2011 (null)
January 2012 (null)
February 2012 (null)
March 2012 0
April 2012 (null)
May 2012 (null)
June 2012 (null)
July 2012 (null)
August 2012 (null)
September 2012 2
October 2012 (null)
November 2012 (null)
December 2012 (null)
January 2013 (null)
February 2013 (null)
March 2013 (null)
April 2013 (null)
May 2013 9
June 2013 (null)
July 2013 (null)
August 2013 (null)
Unknown (null)
問題のある期間には、いくつかのファクト行がありますが、他の作業項目データの変更が含まれていることがわかります。これらの項目が特に SUM の結果を汚染することはないと思います。COUNT の場合、値が 0 であることは問題ありませんが、SUM の場合はそうではありません。
どんな助けでも大歓迎です。
ありがとうございました