Forum Discussion
Syndicate_Admin
Administrator
2 years agoConversión de SQL Query a DAX
Eh
Tengo esta tabla en Power BI (IdsSemHistorico)
SELECT P.Id
FROM Pessoas P
WHERE NOT EXISTS (
SELECT 1
FROM Pessoas_Historico PH
WHERE PH.IdPessoa = P.Id
AND PH.Ativo IS NOT NULL
)
y luego necesito una medida en DAX que me dé algunos cálculos. La consulta SQL es la siguiente:
SELECT COUNT(*)
FROM Pessoas P
LEFT JOIN IdsSemHistorico I ON P.Id = I.Id
WHERE ISNULL(P.DataAdmissao, P.StampData) <= @MonthStart
AND ISNULL(P.DataRescisao, @MonthEnd) <= @MonthEnd
AND (
(I.Id IS NOT NULL AND P.activo = 'S')
OR (
I.Id IS NULL
AND ISNULL((
SELECT TOP 1 PH.Ativo
FROM Pessoas_Historico PH
WHERE PH.IdPessoa = P.Id
AND PH.DataInicioGrupo <= @MonthStart
AND PH.Ativo IS NOT NULL
ORDER BY PH.DataInicioGrupo DESC
), 1) = 1
)
)
¿Alguien puede ayudarme a transformar esta segunda consulta en una expresión DAX?
1 Reply
- Syndicate_Admin
Administrator
Si bien no recomiendo este enfoque, aquí está mi intento:
EmployeeCount = VAR MonthStart = DATEVALUE("YYYY-MM-DD") -- Replace with your @MonthStart logic VAR MonthEnd = DATEVALUE("YYYY-MM-DD") -- Replace with your @MonthEnd logic RETURN CALCULATE( COUNTROWS(Pessoas), FILTER( Pessoas, ISBLANK(Pessoas.DataAdmissao) || Pessoas.DataAdmissao <= MonthStart ), FILTER( Pessoas, ISBLANK(Pessoas.DataRescisao) || Pessoas.DataRescisao <= MonthEnd ), FILTER( Pessoas, Pessoas.Activo = "S" || (NOT(ISBLANK(Pessoas.Id)) && CALCULATE( COUNTROWS(Pessoas_Historico), FILTER( Pessoas_Historico, Pessoas_Historico.IdPessoa = Pessoas.Id && Pessoas_Historico.DataInicioGrupo <= MonthStart && NOT(ISBLANK(Pessoas_Historico.Ativo)) ), ALL(Pessoas_Historico), TOPN( 1, FILTER( Pessoas_Historico, Pessoas_Historico.IdPessoa = Pessoas.Id && Pessoas_Historico.DataInicioGrupo <= MonthStart && NOT(ISBLANK(Pessoas_Historico.Ativo)) ), Pessoas_Historico.DataInicioGrupo, DESC ) ) > 0 ) ) )