Конвертировать SQL-запрос с группой в сценарий MDX - PullRequest
1 голос
/ 19 мая 2019

Мне нужно создать показатель для ssas, используя MDX для подсчета числа сотрудников, но я действительно не представляю, как преобразовать 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

1 Ответ

1 голос
/ 19 мая 2019

Добро пожаловать в StackOverflow.Если я правильно понимаю вашу проблему, вы хотите сгруппировать по Affectation и code_agence и сосчитать отличный MATRICULE для «2050-01-01».Для этого вы хотите создать меру, которая поможет вам подсчитать MATRICULE для любой даты или другой группировки.Основываясь на этом понимании, вот как вы можете это решить.

В вашей таблице фактов у вас должен быть столбец, который содержит MATRICULEID.Теперь в вашем проекте SSAS вы должны создать показатель Distinct count для этого столбца.Теперь другие dimesnions, такие как date и ODS_HR_AFFECTATION, связаны с вашим фактом, поэтому, какое бы значение вы ни выбрали для них, новая мера будет сообщать отчетливый счетчик MATRICULE для этого пространства куба.

Запрос будет похож (Plzобратите внимание, что это всего лишь пример, в вашем кубе названия объектов будут разными)

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]
...