Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
cesarc2sistemas
Contributor III
Contributor III

Ajuda em Set Analisys

Bom dia!

Precisaria de ajuda para o finalizar quadro resumo da consulta em anexo, são os valores que estão zerados.

Este resumo é um espelho para o quadro apresentado a direita, que contém as vendas para os clientes nas duas coleções.

Abaixo coloquei os valores esperados quando a seleção for a mencionada no exemplo.

Se puderem ajudar agradeço antecipadamente

Labels (2)
1 Solution

Accepted Solutions
felipe_dutra
Partner - Creator
Partner - Creator

Cesar,

Se eu entendi, você só considera as emissões ocorridas no período de vigência da coleção. Correto?

Caso seja isso, acredito que os ajustes que fiz em sua aplicação vão atender a sua necessidade.

Criei um Flag no script que identifica se a emissão ocorreu dentro da vigência da coleção, assim a expressão fica mais simples.

Analisa se te atende.

Abs,

Felipe

View solution in original post

9 Replies
nicolett_yuri

cesarc2sistemas

Acredito que a melhor maneira é você criar um campo flag para marcar o que é ou não da coleção atual.

A forma que esta fazendo a sua expressão pode ficar muito complexa para determinadas agregações e isso seria facilitado com a criação do campo flag

cesarc2sistemas
Contributor III
Contributor III
Author

Bom dia Yuri Obrigado pelo retorno!

É que a coleção atual vai variar conforme o filtro que eu fizer no campo Coleção Atual.

A coleção anterior está vinculada a ela através da tabela Agrupamentos.

Por isso que ao ler as vendas da coleção anterior, eu desprezo o filtro feito e leio com todas as possibilidades da coleção anterior: P(DES_COD_COLECAO_ANTERIOR).

Sempre será feito um único filtro na coleção atual e um único filtro no representante.

Já consumi quase um dia tentando ler essa combinação (atual X anterior) e até agora sem sucesso.

Grato pela atenção

felipe_dutra
Partner - Creator
Partner - Creator

Cesar,

Seguem as expressões:

Count({<DES_COD_COLECAO={'$(=Only(DES_COD_COLECAO_ANTERIOR))'},DES_COD_CLIENTE-={"=Count({<DES_COD_COLECAO={$(=Only(DES_COD_COLECAO))}>}DES_COD_CLIENTE)"}>}DISTINCT DES_COD_CLIENTE)

Sum({<DES_COD_COLECAO={'$(=Only(DES_COD_COLECAO_ANTERIOR))'},DES_COD_CLIENTE-={"=Count({<DES_COD_COLECAO={$(=Only(DES_COD_COLECAO))}>}DES_COD_CLIENTE)"}>}DES_QTD_ORIGINAL)

Count({<DES_COD_COLECAO={'$(=Only(DES_COD_COLECAO))'},DES_COD_CLIENTE-={"=Count({<DES_COD_COLECAO={$(=Only(DES_COD_COLECAO_ANTERIOR))}>}DES_COD_CLIENTE)"}>}DISTINCT DES_COD_CLIENTE)

Sum({<DES_COD_COLECAO={'$(=Only(DES_COD_COLECAO))'},DES_COD_CLIENTE-={"=Count({<DES_COD_COLECAO={$(=Only(DES_COD_COLECAO_ANTERIOR))}>}DES_COD_CLIENTE)"}>}DES_QTD_ORIGINAL)

Espero ter ajudado.

Abs,

Felipe

cesarc2sistemas
Contributor III
Contributor III
Author

Boa tarde Felipe!

Além de ajudar ensinou muito, só ficou um detalhe, quando testo se ocorreu venda na coleção diferente da que estou analisando devo considerar o período da coleção, perceba que incluí na sua expressão o primeiro teste do período de venda da coleção anterior, ok, está funcionando, mas como eu incluo o teste do período de venda da coleção atual? Tentei colocar junto ao count mas não funcionou, abaixo a sua expressão sem o segundo teste e a minha alteração que não está funcionando, se puder mais uma vez me ajudar eu agradeço.

Obrigado Antecipadamente

Sua Expressão, já com o teste do período da coleção anterior que está funcionando:

Count({<DES_COD_COLECAO={'$(=Only(DES_COD_COLECAO_ANTERIOR))'}, DES_DAT_EMISSAO = {">=$(=DES_DAT_INICIO_COLECAO_ANTERIOR)<=$(=DES_DAT_TERMINO_COLECAO_ANTERIOR)"},
            DES_COD_CHAVE_CLIENTE -={"=Count({< DES_COD_COLECAO={$(=Only(DES_COD_COLECAO))} >}DES_COD_CHAVE_CLIENTE)"} >} DISTINCT DES_COD_CHAVE_CLIENTE)

Com o teste incluído (em Negrito)

Count({<DES_COD_COLECAO={'$(=Only(DES_COD_COLECAO_ANTERIOR))'}, DES_DAT_EMISSAO = {">=$(=DES_DAT_INICIO_COLECAO_ANTERIOR)<=$(=DES_DAT_TERMINO_COLECAO_ANTERIOR)"},
            DES_COD_CHAVE_CLIENTE -={"=Count({< DES_COD_COLECAO={$(=Only(DES_COD_COLECAO))} , DES_DAT_EMISSAO = {">=$(=DES_DAT_INICIO_COLECAO)<=$(=DES_DAT_TERMINO_COLECAO)"} >}DES_COD_CHAVE_CLIENTE)"} >} DISTINCT DES_COD_CHAVE_CLIENTE)

felipe_dutra
Partner - Creator
Partner - Creator

Cesar,

Se eu entendi, você só considera as emissões ocorridas no período de vigência da coleção. Correto?

Caso seja isso, acredito que os ajustes que fiz em sua aplicação vão atender a sua necessidade.

Criei um Flag no script que identifica se a emissão ocorreu dentro da vigência da coleção, assim a expressão fica mais simples.

Analisa se te atende.

Abs,

Felipe

felipe_dutra
Partner - Creator
Partner - Creator

Ah... uma observação:

A verificação se a emissão ocorreu dentro da vigência não alterou o resultado, pois para a vigência selecionada e para anterior não ocorreram emissões fora da vigência da coleção.

cesarc2sistemas
Contributor III
Contributor III
Author

Obrigado Felipe, sua solução me ajudou bastante.

Ficou perfeito

cesarc2sistemas
Contributor III
Contributor III
Author

Bom dia Felipe!

Sim, não tinha nenhuma venda fora do período, mas isso foi uma só coincidência para o modelo que disponibilizei. Você me perdoe mas preciso fazer mais uma pergunta, no questionamento que lhe fiz anteriormente para colocar mais um teste dentro da leitura, é de muita importância para mim, pois tenho uma maldita coleção chamada de Permanente, ela tem esse nome pois é vendida durante todo o ano, então por exemplo, se eu selecionar uma coleção permanente, preciso fazer as comparações dela com ela própria, mas dentro de períodos diferentes. Por isso que incluir mais um teste dentro do primeiro modelo que você me enviou seria importante. Se tiver jeito, peço sua ajuda.

Obrigado

felipe_dutra
Partner - Creator
Partner - Creator

Oi, Cesar.

A lógica tá pronta, basta adicionar na tabela "Agrupamentos" os dados dessa coleção permanente, em que a coleção anterior é a mesma, mas as datas da coleção anterior são do ano anterior.

Permanente.PNG

Abs,

Felipe