Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde estou com a mesma dificuldade em relacionar a tabela de meta do Protheus. Vocês conseguiram resolver o relacionamento da tabela CT estou enviando a imagem de como estou relacionando sendo: Preciso relacionar a tabela META DE VENDA campo CT_GRUPO a tabela ITENS DA NOTA campo CHV_GRUPO. Se alguém puder me ajudar agradecido.
Boa tarde Carlos,
Seu problema está no modelo de dados. Se você fizer este relacionamento acredito que gerará uma referencia circular.
Acho que você não necessita realizar o relacionamento da Meta com a Nota pelo campo CHV_Vendedor. Assim você poderá amarrar a meta com a tabela Itens de Nota.
João Carlos
Carlos Alexandre.
Faça um left join de Nota com Itens Nota. Vamos aos exemplos.
Temp:
LOAD
CHV_NOTA, //Unir Nota e Itens Nota
* //Demais campos. Coloquei asterisco para ser ágil no exemplo. Em seu modelo declare os campos //necessários
FROM [..\Nota.qvd] (qvd);
Left join (Nota)
LOAD
CHV_NOTA, //Unir Nota e Itens Nota
* //Demais campos. Coloquei asterisco para ser ágil no exemplo. Em seu modelo declare os campos //necessários
FROM [..\Itens Nota.qvd] (qvd);
NoContatenate //Evitar de não carregar a tabela Nota oriunda de um Resident
Nota:
LOAD
(CHV_VEND...& '_' & CHV_GRUPO) AS [%Chave_VEND_GRUPO],
CHV_VEND...,
* //Demais campos. Coloquei asterisco para ser ágil no exemplo. Em seu modelo declare os //campos necessários
Resident Temp;
DROP TABLE Temp;
DROP FIELD CHV_VEND... FROM Nota;
Meta_Venda
LOAD
CHV_VEND...,
(CHV_VEND...& '_' & CT_GRUPO) AS [%Chave_VEND_GRUPO],
*
From [..\Meta_Venda.qvd] (qvd);
Com isso, terá as tabelas Variacao_Q..., Variação_Q..., Clientes, Itens Pedidos, Pedido, Produtos, Tipo Movi.. ligadas a Nota.
Em seguida, crie uma chave composta nas tabelas de Notas e Meta_Venda para ligá-las. Ex.:
[%Chave_VEND_GRUPO].
Ao final, terá o seu objetivo atendido, além da ligação da dimensão Vendedores à Meta_Venda.
Nota: ainda sobrará oportunidade para construir uma única tabela entre Pedidos e Itens Pedidos.
Espero que isso o ajude!
Boa tarde!
Conforme exemplo já estou amarrando pela CHV_VENDEDOR e preciso também ligar a tabela de meta a tabela de itens da nota pelo grupo.
A tabela Itens da nota não tem código do vendedor preciso de uma chave nessa tabela que seria:
LEFT(D2_FILIAL,2)&'|'&"D2_GRUPO" &'|'&"D2_VEND1"as CHV_GRUPO
QUE SERIA LIGADO NA TABELA
LEFT(CT_FILIAL,2)&'|'&"CT_GRUPO" &'|'&"CT_VEND"as CHV_GRUPO
Só que o campo citado d2_vend1 eu tenho ele em outra tabela do cabeçalho da nota campo tabela NOTA: F2_VEND1 que é ligado na tabela ITENS NOTA através da chave CHV_NOTA
Boa tarde!
Obrigado pelo retorno tive erro com o script abaixo se puder me ajudar? Alterou a modelagem as tabelas de meta.
Temp:
LOAD
CHV_NOTA, //Unir Nota e Itens Nota
F2_VEND1 //Demais campos. Coloquei asterisco para ser ágil no exemplo. Em seu modelo declare os campos //necessários
Resident Nota;
Left join (Nota)
LOAD
CHV_NOTA, //Unir Nota e Itens Nota
GRUPO //Demais campos. Coloquei asterisco para ser ágil no exemplo. Em seu modelo declare os campos //necessários
Resident [Itens_Nota];
//NoConcatenate //Evitar de não carregar a tabela Nota oriunda de um Resident
Nota:
LOAD
(CHV_NOTA&'|' &CHV_GRUPO) AS [%Chave_VEND_GRUPO],
CHV_VENDEDOR,
GRUPO
//Demais campos. Coloquei asterisco para ser ágil no exemplo. Em seu modelo declare os //campos necessários
Resident Temp;
DROP TABLE Temp;
DROP FIELD F2_VEND1 FROM Nota;
Meta_Venda:
LOAD
CHV_VENDEDOR,
(CHV_VENDEDOR& '|' & CHV_GRUPO) AS [%Chave_VEND_GRUPO]
Resident [Meta_Venda];
DROP TABLE Temp;
DROP FIELD CHV_VENDEDOR FROM Nota;
Carlos, boa tarde.
Eu normalmente quando tenho este tipo de situação (meta e faturamento ou venda) eu coloco todos na mesma tabela com o concatenate.
No caso seria a Nota, left join dos itens e depois o concatenate da meta. Claro que neste caso, ano,mes,vendedor,produto ou os campos que seriam iguais tem que estar com o mesmo nome para poder ser a mesma selecao.
Assim crio uma tabela que normalmente chamo de Movimento e nela estao Ja vi em outros posts pessoas preferindo o linked table....
Carlos Alexandre.
Algumas observações:
1. O Resident é apenas na tabela Temp;
2. O NoConcatenate fica descomentado;
3. O drop é no campo CHV_VENDEDOR da tabela Nota logo após o Resident em Temp. Ele é o campo que faz ligação com a tabela Meta. Ou nem declara ele, afinal ele está contido na chave composta.
Siga a sequência que está no primeiro post. Óbvio, declarando os campos da tabela no lugar do asterisco.
Ah! Desculpe-me, no parêntesis do left join por um descuido coloquei Nota onde deve ser Temp - fica assim left join (Temp).
Caso tenha dúvida, compartilhe o script.
Já achou uma solução? Se sim, marque umas das respostas como "Correta" para fechar o tópico e nos ajudar a manter o forum organizado.