将带有分组依据的 SQL 查询转换为 MDX 脚本
Convert SQL query with a group by into an MDX script
我需要使用 MDX 在 ssas 上创建一个度量来计算员工人数,但我真的不知道如何将 sql 脚本转换为 MDX,这真的很复杂。
我想要的是如下所示的度量:
CREATE MEMBER CURRENTCUBE.[Measures].[Employee_Number]
AS (count([Collaborateur].[Matricule]) ,
VISIBLE = 1;
这是我的 sql 代码:
SELECT a.Affectation,a.code_agence
(
SELECT COUNT(b.MATRICULE)
FROM [dbo].[ODS_HR_AFFECTATION] b
WHERE
a.[CODE_AFFECTATION] = b.CODE_AFFECTATION and
b.[DATE_FIN] = '2050-01-01'
) AS employee_count
FROM [dbo].[ODS_HR_AFFECTATION] a
结果
AFFECTATION CODE_AGENCE employee_count
Agence Megrine 1012 9
Agence Centrale 1000 9
Agence Bardo 1032 8
Agence hellel 1064 5
Agence Saloul 1061 5
Agence Ville 1079 5
Agence Aazira 1055 5
Agence batb bhar 1054 5
Agence Hammam 1093 5
Agence Midoun 1100 3
Agence May 1121 3
AGENCE KIT EDDAIER 1046 3
Agence Beb 1108 3
Agence Metouia 1120 3
Agence Mourouj 6 1128 3
Agence Metlaoui 1122 3
欢迎来到 Whosebug。如果我正确理解你的问题,你想按 Affectation 和 code_agence 分组并计算“2050-01-01”的不同 MATRICULE。为此,您需要创建一个度量,以帮助您计算任何日期或其他分组的 MATRICULE。基于这种理解,这里是你可以如何解决它。
实际上 table 您应该有包含 MATRICULEID 的列。现在,在您的 SSAS 项目中,您应该在此列上创建一个 Distinct count Measure。现在,日期和 ODS_HR_AFFECTATION 等其他维度与您的事实相关联,因此无论您对它们 select 有何评价,新度量都会报告该多维数据集 space.[= 的 MATRICULE 的非重复计数。 11=]
查询会是这样。(请注意这只是一个示例,在您的多维数据集中,对象的名称会有所不同)
select [measures].[DistinctMATRICULE] on 0,
([DimODS_HR_AFFECTATION].[Affectation].[Affectation],
[DimODS_HR_AFFECTATION].[code_agence].[code_agence]) on 1
from [yourcube]
where
[Dimdate].[DATE_FIN].[2050-01-01]
我需要使用 MDX 在 ssas 上创建一个度量来计算员工人数,但我真的不知道如何将 sql 脚本转换为 MDX,这真的很复杂。
我想要的是如下所示的度量:
CREATE MEMBER CURRENTCUBE.[Measures].[Employee_Number]
AS (count([Collaborateur].[Matricule]) ,
VISIBLE = 1;
这是我的 sql 代码:
SELECT a.Affectation,a.code_agence
(
SELECT COUNT(b.MATRICULE)
FROM [dbo].[ODS_HR_AFFECTATION] b
WHERE
a.[CODE_AFFECTATION] = b.CODE_AFFECTATION and
b.[DATE_FIN] = '2050-01-01'
) AS employee_count
FROM [dbo].[ODS_HR_AFFECTATION] a
结果
AFFECTATION CODE_AGENCE employee_count
Agence Megrine 1012 9
Agence Centrale 1000 9
Agence Bardo 1032 8
Agence hellel 1064 5
Agence Saloul 1061 5
Agence Ville 1079 5
Agence Aazira 1055 5
Agence batb bhar 1054 5
Agence Hammam 1093 5
Agence Midoun 1100 3
Agence May 1121 3
AGENCE KIT EDDAIER 1046 3
Agence Beb 1108 3
Agence Metouia 1120 3
Agence Mourouj 6 1128 3
Agence Metlaoui 1122 3
欢迎来到 Whosebug。如果我正确理解你的问题,你想按 Affectation 和 code_agence 分组并计算“2050-01-01”的不同 MATRICULE。为此,您需要创建一个度量,以帮助您计算任何日期或其他分组的 MATRICULE。基于这种理解,这里是你可以如何解决它。
实际上 table 您应该有包含 MATRICULEID 的列。现在,在您的 SSAS 项目中,您应该在此列上创建一个 Distinct count Measure。现在,日期和 ODS_HR_AFFECTATION 等其他维度与您的事实相关联,因此无论您对它们 select 有何评价,新度量都会报告该多维数据集 space.[= 的 MATRICULE 的非重复计数。 11=]
查询会是这样。(请注意这只是一个示例,在您的多维数据集中,对象的名称会有所不同)
select [measures].[DistinctMATRICULE] on 0,
([DimODS_HR_AFFECTATION].[Affectation].[Affectation],
[DimODS_HR_AFFECTATION].[code_agence].[code_agence]) on 1
from [yourcube]
where
[Dimdate].[DATE_FIN].[2050-01-01]