Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
caiqueeloy93
Contributor III
Contributor III

Problemas ao tentar fazer um SET ANALISE pra trazer só ID distinct

Ola Senhores e Senhoras, Boa tarde a todos.

Seguinte estou com um problema pra "setar" que ele só busque os metros quadrados se o ID for distinct...

O código seria :

Sum ( {<Oportunidade_Fase = {'Fria','Quente','Morna'},Oportunidade_Data_Ano_Fase ={'>=$(vAnoAtual)'},distinct(Oportunidade_Id

)>}  Oportunidade_Metros_Quadrados)

ps: sei que está errado o código já que não gera gráfico algum mas só pra os senhores entender mais ou menos a logica do que estou querendo fazer...

Sem o ID distinto DOBRA a metragem por isso precisava setar isso, mas não sei como ! já tentei na carga e com SET analise mas não obtive exito...

Obrigado desde já.

Labels (1)
1 Solution

Accepted Solutions
pablolabbe
Luminary Alumni
Luminary Alumni

Olá Caique,

Uma observação, não se usa virgula junto com o distinct.  Quanto a expressão que o Thiago sugere, eu faria o seguinte ajuste:

sum(

  Aggr(max( {<Oportunidade_Fase = {'Fria','Quente','Morna'},Oportunidade_Data_Ano_Fase ={">=$(vAnoAtual)"})>}

  Oportunidade_Metros_Quadrados), Oportunidade_Id)

)

o uso do max dentro do aggr "simula" a busca distinta do valor por Oportunidade_Id.

e o sum mais externo faz o somatorio dos valores encontrados por Oportunidade_Id.

Abraço,

Pablo

View solution in original post

12 Replies
Thiago_Justen_

Use:

Aggr(Sum ( {<Oportunidade_Fase = {'Fria','Quente','Morna'},Oportunidade_Data_Ano_Fase ={">=$(vAnoAtual)"}

)>}  Oportunidade_Metros_Quadrados),

Oportunidade_Id)

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
caiqueeloy93
Contributor III
Contributor III
Author

Boa tarde Thiago,

Não conhecia a função Aggr obrigado pelo novo conhecimento,

Porém não consegui ! Cheguei a colocar o distinct e mesmo assim não consegui...

Aggr(Sum({<Oportunidade_Fase = {'Fria','Quente','Morna'},Oportunidade_Data_Ano_Fase ={">=$(vAnoAtual)"})>} Oportunidade_Metros_Quadrados),distinct Oportunidade_Id)

Thiago_Justen_

Veja, não é preciso o uso do distinct aí...

Pergunta: como está o cálculo da variável vAnoAtual? Pois uma alternativa seria:

Aggr(Sum ( {<Oportunidade_Fase = {'Fria','Quente','Morna'},Oportunidade_Data_Ano_Fase ={">=$(=Year(Today()))"}

)>}  Oportunidade_Metros_Quadrados),

Oportunidade_Id)

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
caiqueeloy93
Contributor III
Contributor III
Author

A variavel esta definida dessa forma mesmo que você colocou : =Year(Today())

O uso do distinto não é preciso porque ele é default ?

Mesmo da forma colocada agora não foi

Não dá pra entender o pq não vai kk a logica ta certa...

Thiago_Justen_

Veja:

Seu campo Oportunidade_Data_Ano_Fase apresenta somente o ano ou está em formato dd/mm/yyyy?

Se você puder, poste aqui um qvf ou qvw de exemplo que agente verifica outros detalhes.

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
caiqueeloy93
Contributor III
Contributor III
Author

Segue a carga de dados nivel graficos :

[Oportunidades]:

LOAD

[Oportunidade_Id],

[Oportunidade_Nome_Cliente],

[Oportunidade_Metros_Quadrados],

[Oportunidade_Consultor_Id],

MONTHNAME([Oportunidade_Data_Fase]) AS [Oportunidade_Data_Fase],

[Oportunidade_Data_Ano_Fase],

DATE([Oportunidade_Data_Fase_Dia_Mês_Ano],'DD/MM/YYYY') AS [Oportunidade_Data_Fase_Dia_Mês_Ano],

[Oportunidade_Tipo],

IF(ISNULL(Oportunidade_Proposta_Sincronizada) , 'Não Sincronizada'

,Oportunidade_Fase) AS Oportunidade_Fase,

[Oportunidade_Id_Grupo],

[Oportunidade_Id_Departamento_Grupo],

IF(Oportunidade_Departamento_Grupo = 'Consultor_Comercial_Nordeste' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_RJ_ES' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_SP' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_Sul' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_Centro_Oeste' OR

    Oportunidade_Departamento_Grupo = 'Coordenador_Comercial' OR

    Oportunidade_Departamento_Grupo = 'Contas_Nacionais' OR

    Oportunidade_Departamento_Grupo = 'Coordenador_Comercial' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_MG' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_Norte'

    ,[Oportunidade_Departamento_Grupo],'Outros')

    AS [Oportunidade_Departamento_Grupo],

IF(Oportunidade_Departamento_Grupo = 'Consultor_Comercial_Nordeste' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_RJ_ES' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_SP' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_Sul' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_Centro_Oeste' OR

    Oportunidade_Departamento_Grupo = 'Coordenador_Comercial' OR

    Oportunidade_Departamento_Grupo = 'Contas_Nacionais' OR

    Oportunidade_Departamento_Grupo = 'Coordenador_Comercial' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_MG' OR

    Oportunidade_Departamento_Grupo = 'Consultor_Comercial_Norte'

    ,[Oportunidade_Nome_Consultor],'Outros')

    AS [Oportunidade_Nome_Consultor],

IF(Oportunidade_Gerencia = 'SERGIO' or Oportunidade_Gerencia =  'SILVIA',Oportunidade_Gerencia,'OUTROS') AS Oportunidade_Gerencia,

[Oportunidade_Filial]

FROM [lib://comercial_01/Oportunidade.qvd]

(qvd);

EXIT SCRIPT;

Segue a carga de dados QVD:

LIB CONNECT TO 'Salesforce_BULK';

[Oportunidade]:

LOAD "Id" AS  [Oportunidade_Id],

"Cliente__c" AS  [Oportunidade_Nome_Cliente],

"Metros_quadrados__c" AS  [Oportunidade_Metros_Quadrados] ,

"StageName" AS  [Oportunidade_Fase],

    "CreatedById" AS  [Oportunidade_Consultor_Id],

    "CloseDate" AS  [Oportunidade_Data_Fase],

    YEAR("CloseDate") AS  [Oportunidade_Data_Ano_Fase],

    "CloseDate" AS [Oportunidade_Data_Fase_Dia_Mês_Ano],

    "Tipo_de_oportunidade__c" AS  [Oportunidade_Tipo],

    "Proposta__c" AS  [Oportunidade_Proposta_Sincronizada],

    "Gerencia_negociacao__c" AS [Oportunidade_Gerencia],

    "Filial__c" AS [Oportunidade_Filial];

SELECT Id,

Cliente__c,

Metros_quadrados__c,

StageName,

    CreatedById,

    CloseDate,

    Proposta__c,

Tipo_de_oportunidade__c,

    Gerencia_negociacao__c,

    Filial__c

  

FROM Opportunity;

JOIN

LOAD "Id" AS  [Oportunidade_Consultor_Id],

IF(IsActive = '0','Outros',"Name") AS  [Oportunidade_Nome_Consultor],

"UserRoleId" AS  [Oportunidade_Id_Departamento_Grupo];

   

SELECT Id,

Name,

    IsActive,

    UserRoleId

FROM User;

JOIN

LOAD "Id" AS  [Oportunidade_Id_Grupo],

     "DeveloperName" AS  [Oportunidade_Departamento_Grupo],

"RelatedId" AS  [Oportunidade_Id_Departamento_Grupo] ;

SELECT Id,

DeveloperName,

RelatedId

FROM Group;

STORE * FROM Oportunidade INTO [lib://comercial_01/Oportunidade.qvd] (qvd);

EXIT SCRIPT;

Obrigado mais uma vez.

caiqueeloy93
Contributor III
Contributor III
Author

Se alguem poder agregar mais algum conhecimento ou alternativa pra resolução do problema,

Agradeço

pablolabbe
Luminary Alumni
Luminary Alumni

Olá Caique,

Uma observação, não se usa virgula junto com o distinct.  Quanto a expressão que o Thiago sugere, eu faria o seguinte ajuste:

sum(

  Aggr(max( {<Oportunidade_Fase = {'Fria','Quente','Morna'},Oportunidade_Data_Ano_Fase ={">=$(vAnoAtual)"})>}

  Oportunidade_Metros_Quadrados), Oportunidade_Id)

)

o uso do max dentro do aggr "simula" a busca distinta do valor por Oportunidade_Id.

e o sum mais externo faz o somatorio dos valores encontrados por Oportunidade_Id.

Abraço,

Pablo

caiqueeloy93
Contributor III
Contributor III
Author

Olá pablo, muito obrigado pela ajuda e conhecimentos passados,

mas ainda não consegui, não exibi nenhum dado após adicionar a programação sugerida...

A respeito do SUM externo se foi isso que entendi ele soma o ID distintos certo ? mas na verdade minha intenção é somar o Oportunidade_Metros_Quadrados, é necessário o distinto pois a metragem está se triplicando do valor real por um motivo especifico de processos da empresa...

Agradeço novamente pela ajuda ...

Abraço