代码之家  ›  专栏  ›  技术社区  ›  Menno

每个公共维度成员的计算度量

  •  1
  • Menno  · 技术社区  · 7 年前

    如下表所示:

    CREATE TABLE [Dimensie].[Cao]
    (
        [Cao key] INT NOT NULL IDENTITY(1,1),
        [Cao business key] NVARCHAR(255) NOT NULL,
        CONSTRAINT [PK Cao] PRIMARY KEY ([Cao key]),
        CONSTRAINT [UC Cao business key] UNIQUE ([Cao business key])
    );
    
    CREATE TABLE [Dimensie].[Datum]
    (
        [Datum key] INT NOT NULL,
        [Datum business key] DATETIME NOT NULL,
        [Jaar] INT NOT NULL,
        [Maand] INT NOT NULL,
        [Dag van de maand] INT NOT NULL,
        [Datum] NVARCHAR(255) NOT NULL
        CONSTRAINT [PK Datum] PRIMARY KEY ([Datum key]),
        CONSTRAINT [UC Datum business key] UNIQUE ([Datum business key])
    );
    
    CREATE TABLE [Personeel].[Contractuele uren]
    (
        [Datum key] INT NOT NULL,
        [Cao key] INT NOT NULL,
        [Contractuele uren] NUMERIC(15,6) NOT NULL,
        CONSTRAINT [FK Contractuele uren Datum] FOREIGN KEY ([Datum key]) REFERENCES [Dimensie].[Datum] ([Datum key]),
        CONSTRAINT [FK Contractuele uren Cao] FOREIGN KEY ([Cao key]) REFERENCES [Dimensie].[Cao] ([Cao key]),
        CONSTRAINT [UC Contractuele uren] UNIQUE ([Datum key], [Cao key])
    );
    
    CREATE TABLE [Personeel].[Werklast uren]
    (
        [Datum key] INT NOT NULL,
        [Cao key] INT NOT NULL,
        [Werklast uren] NUMERIC(15,6) NOT NULL,
        CONSTRAINT [FK Werklast uren Datum] FOREIGN KEY ([Datum key]) REFERENCES [Dimensie].[Datum] ([Datum key]),
        CONSTRAINT [FK Werklast uren Cao] FOREIGN KEY ([Cao key]) REFERENCES [Dimensie].[Cao] ([Cao key])
    );
    

    所以两张桌子 Personeel 架构正在引用 Dimensie 架构。

    我已经生成了 SSAS tabular 基于这些表的项目,采取以下措施:

    Contracturen := SUM('Contractuele uren'[Contractuele uren])
    Uren/FTE     := SUM('Werklast uren'[Werklast uren])
    Contract FTE := 'Contractuele uren'[Contracturen]/'Werklast uren'[Uren/FTE]
    

    这给了我下面的结果( [Dimensie].[Datum].[Maand] 排成一排, [Dimensie].[Cao].[Cao business key] 在列上):

    enter image description here

    36 45 .

    Contract FTE

    1 回复  |  直到 7 年前
        1
  •  1
  •   Menno    7 年前

    在总结之前,使用迭代器对各个成员执行除法:

    Contract FTE := 
        SUMX(
            VALUES('Cao'[Cao business key]); 
            DIVIDE('Contractuele uren'[Contracturen]; 'Werklast uren'[Uren/FTE])
        )