Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Assuntos relacionados a criação de medidas, fórmulas e funções DAX, relacionamentos etc
#59823
Olá pessoalEstou chegando aqui depois de garimpar todos os vídeos e na internet sem sucesso, 
Tenho uma base de dados com mais de 1 milhão de clientes, todo dia inclui e cancela clientes.
As colunas são: ID_CLIENTE,INCLUSAO_DATA,STATUS,EXCLUSAO_DATA.
Preciso saber por exemplo quantos cliente existiam em 2016, no SQL faço assim:

SELECT  id_cliente, inclusao_data,status,exclusao_data FROM from tb_cliente
WHERE inclusao_data <='2016-12-31' and status='n'
OR (inclusao_data <='2016-12-31' and status='s' and exclusao_data > '2016-12-31')

Não consegui fazer no DAX, preciso de sua ajuda, Desde já agradeço
Luciano Vaz de BH
#60061
Segue dados de Exemplo extraidos no SQL
id_cliente inclusao_data status exclusao_data
28011 30/10/1977 S 29/05/2018
41017 06/10/1979 S 03/05/2019
51012 01/02/1970 N
65013 07/09/1956 N
65021 07/09/1918 S 22/03/2018
72010 10/07/1982 N
84018 14/08/1936 S 04/04/2020
87025 24/07/1968 S 19/06/2019
89010 23/04/1944 N
105015 22/05/1971 N
109011 19/05/2016 N
138011 12/10/2016 N
141011 09/03/1943 N
148016 19/07/1970 S 03/10/2019
149012 25/08/1975 N
172022 15/05/1985 S 11/10/2020
175048 27/04/1936 N
192015 11/12/1955 S 19/07/2018
195031 05/10/1974 N
196011 01/01/1944 S 15/09/2019
200026 15/06/1983 S 14/09/2019
207012 14/12/2000 S 22/07/2017
207021 14/12/1954 N
#60131
Vilmar escreveu: 30 Out 2020 às 21:54 Tente:
Código: Selecionar todos
Clientes_Ativos = 
CALCULATE (
    COUNTROWS ( Tabela1 );
    FILTER (
        Tabela1;
        Tabela1[inclusao_data] <= DATE ( 2016; 12; 31 )
            && Tabela1[status] = "N"
            || (Tabela1[inclusao_data] <= DATE ( 2016; 12; 31 )
                    && Tabela1[status] = "S"
                    && Tabela1[exclusao_data] > DATE ( 2016; 12; 31 ) ) ) )
Caro Vilmar, primeiramente muito grato pelo feedback!
O script que você disponibilizou trouxe exatamente os dados que preciso, funcionou
No entanto agors preciso que seja dinâmico com o Calendario = CALENDAR(MIN(tb_cliente[atualizacao_data]), MAX(tb_cliente[atualizacao_data]) ) ou seja, ao inserir uma segmentação de dados com Ano.

Na tabela fiz relacionamento com Calendario[Data] com tb_cliente[atualizacao_data]

Código: Selecionar todos
Clientes_Ativos = 
CALCULATE (
    COUNTROWS ( tb_cliente );
    FILTER (
        tb_cliente;
       tb_cliente[inclusao_data] <= DATE ( 2016; 12; 31 )
            && tb_cliente[status] = "N"
            || (tb_cliente[inclusao_data] <= DATE ( 2016; 12; 31 )
                    && tb_cliente1[status] = "S"
                    && tb_cliente[exclusao_data] > DATE ( 2016; 12; 31 ) ) ) )
#60267
Desculpe-me pela demora em dar um feedback, mas estava tentando com essa medida, infelizmente não tive sucesso, quando faço o vinculo com o dCalendario, o resultado não sai como deveria, Ex: pois quero todos os clientes que foram incluidos (inclusao_data) até uma data que estejam com status"N", se o status tiver como "S" e foi excluido depois dessa data (exclusao_data) tambem devem ser contados. em anexo um exemplo dos dados em powerbi,Parece tão simples, já não sei mais o que fazer.
Você não está autorizado a ver ou baixar esse anexo.
#60287
Desculpe, acabei esquecendo de colocar mais uma informação. Tente agora
Código: Selecionar todos
Clientes Ativos = 
CALCULATE (
    COUNTROWS ( Tabela1 ),
    FILTER (
        ALL(Tabela1),
        Tabela1[inclusao_data] <= MAX(dCalendario[Data])
            && Tabela1[status] = "N"
            || Tabela1[inclusao_data] <= MAX(dCalendario[Data])
                    && Tabela1[status] = "S"
                    && Tabela1[exclusao_data] > MAX(dCalendario[Data])))
#60299
Infelismente não obtive sucesso, unica maneira que consegui foi de forma manual, ai tras todos os dados corretos
Clientes Ativos =
var DT=DATE(2018,12,31)
return
CALCULATE (

COUNT(Tabela1[id_cliente] ),
FILTER (
Tabela1,
Tabela1[inclusao_data] <= DT
&& Tabela1[status] = "N"
|| Tabela1[inclusao_data] <= DT
&& Tabela1[status] = "S"
&& Tabela1[exclusao_data] > DT))
Mas ai não terá como utilizar em relatorio dinamico pois terei que digitar o ano desejado
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord