1

私は SQL Server 2008 R2 を使用し、SSRS を使用し、Adventure WorkDataBase を使用しています。

2003 年と 2004 年の両方で上位 10 位に入った都市を取得するために、この MDX クエリを作成します。

with 
set [Best Cities in CY 2003/2004] as
    intersect(
        order(
            topcount(
                [Customer].[Customer Geography].[City],
                10,
                (
                    [Measures].[Internet Sales Amount],
                    [Date].[Calendar].[Calendar Year].[CY 2003]
                )
            ),
            [Measures].[Internet Sales Amount],
            bdesc
        ),
        order(
            topcount(
                [Customer].[Customer Geography].[City],
                10,
                (
                    [Measures].[Internet Sales Amount],
                    [Date].[Calendar].[Calendar Year].[CY 2004]
                )
            ),
            [Measures].[Internet Sales Amount],
            bdesc
        )
    )
Select [Measures].[Internet Sales Amount] on columns,
       [Best Cities in CY 2003/2004] on rows
From [Adventure Works]
Where 
{
    [Date].[Calendar].[Calendar Year].[CY 2003],
    [Date].[Calendar].[Calendar Year].[CY 2004]
}

しかし、インターネット販売が前年に比べて 35% 減少した都市のリストと、同じ年の上位 10 都市の都市のリストも取得したいと考えています。

どうすればこの結果を得ることができますか?

4

1 に答える 1

3

これには次のように使用Filterします。

with 
set [Best Cities in CY 2003/2004] as
    filter(
        intersect(
            topcount(
                [Customer].[Customer Geography].[City],
                10,
                (
                    [Measures].[Internet Sales Amount],
                    [Date].[Calendar].[Calendar Year].[CY 2003]
                )
            ),
            topcount(
                [Customer].[Customer Geography].[City],
                10,
                (
                    [Measures].[Internet Sales Amount],
                    [Date].[Calendar].[Calendar Year].[CY 2004]
                )
            )
        ),
        ([Measures].[Internet Sales Amount], [Date].[Calendar].[Calendar Year].[CY 2004])
        /
        ([Measures].[Internet Sales Amount], [Date].[Calendar].[Calendar Year].[CY 2003])
        - 1.0
        < -0.35
    )
Select [Measures].[Internet Sales Amount] on columns,
       [Best Cities in CY 2003/2004] on rows
From [Adventure Works]
Where 
{
    [Date].[Calendar].[Calendar Year].[CY 2003],
    [Date].[Calendar].[Calendar Year].[CY 2004]
}
于 2013-08-29T08:12:10.103 に答える