Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Vendas versus metas

Possuo uma tabela de vendas que tem os seguintes campos

VENDAS:

vendedor

produto

mês

ano

qtde

valor

Tenho outra tabela de metas assim

METAS:

vendedor

mês

meta

Preciso fazer uma comparação da meta com a soma das vendas mês a mês, vendedor a vendedor.


Pode acontecer do vendedor ter meta para aquele mês e não ter venda alguma.

Também vou precisar somar vários vendedores de um grupo para ver a venda acumulada versus a meta acumulada do grupo.


Já tentei linkar as duas tabelas porém ao multiplicar VENDAS x METAS as metas estão sendo somadas. Por exemplo, se o vendedor fez 3 vendas, a meta dele é triplicada quando não deveria.

Alguma dica ?

1 Solution

Accepted Solutions
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá, poderia sim, mas por questões de boa prática e performance em QlikView, sempre devemos utilizar o campo chave como numérico.

Se você seguir como esta no blog não terá problemas, nem de duplicação de registro e nem o problema de ter venda e não ter meta ou vice-versa.

Abraços.

Tonial.

Don't Worry, be Qlik.

View solution in original post

16 Replies
fernando_tonial
Partner - Specialist
Partner - Specialist

Olá, da uma olhada no meu Blog, lá tem como fazer isso.

Link

Abraços.

Tonial.

Don't Worry, be Qlik.
Not applicable
Author

Obrigado pela resposta.


Sua dica é válida e resolve o problema da referência circular entre as tabelas. Mas e a questão da multiplicação das linhas ? Também gostaria de saber porque usar a função autonumber() ? Não bastaria simplesmente concatenar os campos para formar a nova chave ?

No seu exemplo você usa a seguinte expressão

AutoNumber(Data&'|'&[Código Vendedor]) as %ChaveLinkTable

Porque não simplesmente

(Data&'|'&[Código Vendedor]) as %ChaveLinkTable

?


Not applicable
Author

Aqui na empresa temos o mesmo caso que o seu, segue o script :

[Previsão]:

LOAD

          TEXT(ID_VENDEDOR)          AS ID_VENDEDOR,

          TEXT(ID_CLIENTE)          AS ID_CLIENTE,

          TEXT(ID_MUNICIPIO)          AS ID_MUNICIPIO,

          ANO,

          MES,

          TEXT(ID_CULTURA)          AS ID_CULTURA,

          TEXT(ID_PRODUTO)          AS ID_PRODUTO,

          QTD_PREVISAO                    AS [Quantidade Previsão],

          QT_LT_KGV,

          VALOR_PREVISAO                    AS [Valor Previsão]

;

[Movimento]:

LOAD

          TEXT(OPERACAO)                    AS ID_OPERACAO,

          TEXT(NOTA_FISCAL)   AS NR_NOTAFISCAL,

          TEXT(SERIE)                              AS NR_SERIE,

          ANO,

          MES,

          TEXT(ID_VENDEDOR)          AS ID_VENDEDOR,

          TEXT(ID_PRODUTO)          AS ID_PRODUTO,

          TEXT(ID_CLIENTE)          AS ID_CLIENTE,

          TEXT(ID_MUNICIPIO)          AS ID_MUNICIPIO,

          TEXT(ID_CULTURA)          AS ID_CULTURA,

          QUANT_V                                        AS QT_VENDA,

          VALOR_V                                        AS VL_VENDA,

          QUANT_D                    AS QT_DEVOLUCAO,

            VALOR_D                    AS VL_DEVOLUCAO,

            QUANT_VF                              AS QT_VENDAFUTURA,

            VALOR_VF                   AS VL_VENDAFUTURA,

            VALOR_DVF                  AS VL_DEV_VENDAFUTURA,

            QUANT_SR                   AS QT_REMESSA,

          VALOR_SR                              AS VL_REMESSA,

          QUANT_PV                              AS QT_PEDIDO,

          VALOR_PV                              AS VL_PEDIDO

;


fernando_tonial
Partner - Specialist
Partner - Specialist

Olá, poderia sim, mas por questões de boa prática e performance em QlikView, sempre devemos utilizar o campo chave como numérico.

Se você seguir como esta no blog não terá problemas, nem de duplicação de registro e nem o problema de ter venda e não ter meta ou vice-versa.

Abraços.

Tonial.

Don't Worry, be Qlik.
Not applicable
Author

Fernando, estou vendo que preciso aprender urgente essa "pratica" de carga de dados, vou começar a praticar com frequencia..

Not applicable
Author

No caso o código de vendedor que uso não é 100% numérico. Sendo assim, imagino que a função autonumber() não pode ser usada. Estou correto ?

rphpacheco
Creator III
Creator III

Boa tarde João.

A função AutoNumber pode ser utilizada idependente se o campo é numérico ou não.

No caso apresentado pelo Fernando Tonial, em que esta função é feita com a concatenação de campos de uma tabela, a função AutoNumber irá transformar esta concatenação em um registro único numérico.

Abraço!

Not applicable
Author

Então a função autonumber() gera um hash code único a partir dos argumentos fornecidos como parâmetro, é isso ?

Not applicable
Author

De fato o problema da referência circular foi resolvido. Porém, continuo tendo uma multiplicação da meta.

Assim, se o vendedor tem meta de 100 mil reais, se ele fez 3 vendas, a meta aparece 300 mil reais e não 100 mil. Ou seja, a associação da tabela de meta com a tabela de vendas continua sendo m:n quando deveria ser 1:n.