Qlik Community

Brasil

Announcements
June 28, 10AM ET: Qlik Nation and Qlik Community present: CyberSleuth REGISTER TODAY
cancel
Showing results for 
Search instead for 
Did you mean: 
Ribeiro
Specialist
Specialist

Dica de JOIN?

Preciso fazer Join

no custo_medio(LCT) e quantidade(VND):

Alguém poderia me da uma dica.

***********************************************

LCT:

LOAD lancto,

     AutoNumber(Text(lancto)) as p_lancto,

     AutoNumber(Text(empresa)) as p_empresa,

     AutoNumber(Text(produto)) as p_produto,

    data as datalancto, 

   "custo_medio",

    "ult_custo";  

SQL SELECT *

FROM fragata."public"."estoque_lancto"

WHERE data>= '$(v_data)' and data <='$(v_dataf)';

store LCT into C:\postos\qvd\LCT.qvd(qvd);

******************************************************

VND:

//Vendas_lancto

LOAD data,

    turno,

    hora,

    seq,

    produto,

    operacao,

    valor_desconto,

    preco_unit_orig,

    AutoNumber(Text(mlid)) as p_recebimento,

    AutoNumber(Text(produto)) as p_produto,

    AutoNumber(Text(vendedor)) as p_vendedor,

    AutoNumber(Text(empresa)) as p_empresa,

    AutoNumber(Text(grid)) as p_lancto,

    AutoNumber(Text(deposito)) as p_deposito,

    AutoNumber(Text(grid)) as p_abastecimento,

    AutoNumber(Text(bico)) as p_bico,

    abastecimento as nrabastecimento,

    bico,

    quantidade,

    Date(Floor(data),'DD/MM/YYYY')     as     CalendarDate,

    Hour(hora) as Hora,

    pessoa,

    documento,

    "preco_unit",

    preco_unit_venda,

    valor,

    vendedor,

    abastecimento,

    usuario,

    empresa,

    mlid,

    grid as gridvnd; 

SQL SELECT *

FROM fragata."public".lancto

WHERE data>= '$(v_data)' and data <='$(v_dataf)';

store VND into C:\postos\qvd\VND.qvd(qvd

Neves
1 Solution

Accepted Solutions
Marcio_Campestrini
Specialist
Specialist

Agnaldo

Conforme mencionei, com aquelas alterações você terá as tabelas ligadas.

Se você precisa manter a fórmula existente, além do que comentei você precisará então fazer um join entre as tabelas, conforme abaixo:

Left Join (LCT)

Load

LOAD data,

    turno,

    hora,

    seq,

    produto,

    operacao,

    valor_desconto,

    preco_unit_orig,

    AutoNumber(Text(mlid)) as p_recebimento,

    AutoNumber(Text(vendedor)) as p_vendedor,

    AutoNumber(Text(deposito)) as p_deposito,

    AutoNumber(Text(grid)) as p_abastecimento,

    AutoNumber(Text(bico)) as p_bico,

    abastecimento as nrabastecimento,

    bico,

    quantidade,

    Date(Floor(data),'DD/MM/YYYY')     as     CalendarDate,

    Hour(hora) as Hora,

    pessoa,

    documento,

    "preco_unit",

    preco_unit_venda,

    valor,

    vendedor,

    abastecimento,

    usuario,

    empresa,

    mlid,

    grid as gridvnd

resident VND;

Drop table VND;

Com isso você terá todos os campos em uma tabela. Depois, é só fazer outro join para criar o campo:

Left Join (LCT)

Load <campo_chave_que_você_criou>,

         quantidade * "custo_medio" As Custo

Resident LCT;

Márcio Rodrigo Campestrini

View solution in original post

4 Replies
Marcio_Campestrini
Specialist
Specialist

Agnaldo,

Do jeito que estão as tabelas, ao carregar no Qlikview já vai gerar um relacionamento entre elas, através dos campos

p_lancto, p_empresa e p_produto, o que vai gerar uma chave sintética.

Para evitar isso, você deve concatenar os campos e não carregá-los individualmente em uma das tabelas.



Márcio Rodrigo Campestrini
klaus_gibin
Partner
Partner

Crie uma chave entre os campos "p_lancto, p_empresa e p_produto" nas duas tabelas, após isso de o left join da chave e do campo quantidade.

left join(VND)

Chave,

Quantidade

..

Da uma olhada nesse post que aprofunda nos conceitos de união.

htt ps: / / community.qlik.com/thread/39177

(Tire o espaço do link)

Ribeiro
Specialist
Specialist
Author

Eu tinha todos este campos relacionados dentro do Postgress.

Mas precisei fazer direto no qlik.

Era assim:

quantidade*preco_medio As custo:

Preciso criar algo assim. Me disseram para usar o JOIN

Dentro do sql com o relacionamento.

Eu preciso criar novamente este campo custo. Pois tem muita expressões para corrigir.

Neves
Marcio_Campestrini
Specialist
Specialist

Agnaldo

Conforme mencionei, com aquelas alterações você terá as tabelas ligadas.

Se você precisa manter a fórmula existente, além do que comentei você precisará então fazer um join entre as tabelas, conforme abaixo:

Left Join (LCT)

Load

LOAD data,

    turno,

    hora,

    seq,

    produto,

    operacao,

    valor_desconto,

    preco_unit_orig,

    AutoNumber(Text(mlid)) as p_recebimento,

    AutoNumber(Text(vendedor)) as p_vendedor,

    AutoNumber(Text(deposito)) as p_deposito,

    AutoNumber(Text(grid)) as p_abastecimento,

    AutoNumber(Text(bico)) as p_bico,

    abastecimento as nrabastecimento,

    bico,

    quantidade,

    Date(Floor(data),'DD/MM/YYYY')     as     CalendarDate,

    Hour(hora) as Hora,

    pessoa,

    documento,

    "preco_unit",

    preco_unit_venda,

    valor,

    vendedor,

    abastecimento,

    usuario,

    empresa,

    mlid,

    grid as gridvnd

resident VND;

Drop table VND;

Com isso você terá todos os campos em uma tabela. Depois, é só fazer outro join para criar o campo:

Left Join (LCT)

Load <campo_chave_que_você_criou>,

         quantidade * "custo_medio" As Custo

Resident LCT;

Márcio Rodrigo Campestrini