Logo Hardware.com.br
cpdinfohelp
cpdinfohelp Novo Membro Registrado
8 Mensagens 0 Curtidas

como unir dados d 02 bancos .dbf segue exemplo dos dados

#1 Por cpdinfohelp 06/11/2003 - 10:47
olá pessoal tenho 02 bancos .dbf

NTF.DBF
NOTA|FILIAL|COD_CLI|NOME |TOTAL_NF|
0010|1 |000126 |FERRAGEM LTDA |200,00 |
0011|1 |001220 |TERRAPLANAGEM |400,00 |

NTF_ITEM.DBF
NOTA|COD_PROD|QUANT|VALOR_UNIT|
0010 |ALI0010 |5 |20,00 |
0010 |FENDA03 |10 |10,00 |
0011 |BAU0110 |4 |100,00 |

Vou criar um 3º arquivo assim

NTF_TUDO.DBF
NOTA|FILIAL|COD_CLI|COD_PROD|QUANT|VALOR_UNIT|
0010|1 |000126 |ALI0010 |5 |20,00 |
0010|1 |000126 |FENDA03 |10 |10,00 |
0011|1 |001220 |BAU0110 |4 |100,00 |
Como devo proceder?,montar um while? ou...se puderem passar um exemplo baseados nestas informações, agradeceria.

Obrigado.
Le
Responder
Cerberusnet
Cerberusnet Membro Junior Registrado
77 Mensagens 0 Curtidas
#4 Por Cerberusnet
06/11/2003 - 13:51
Qual programa vc vai usar eu não sei, mas vc pode usar uma SQL pra juntar esses dois ( se forem tabelas de uma mesmo banco)
Baseado nesse exemplo vc pode fazer assim:

"SELECT NTF.NOTA, NTF.FILIAL, NTF.COD_CLI, NTF_ITEM.COD_PROD, NTF_ITEM.QUANT, NTF_ITEM.VALOR_UNIT INTO NTF_TUDO FROM NTF_ITEM LEFT JOIN NTF ON NTF_ITEM.NOTA = NTF.NOTA;"

Essa consulta gera uma tabela (NTF_TUDO) em função de uma consulta que agrega as outras (NTF_ITEM, NTF) conforme as regra que eu entendi que vc queria.
As extensões (.DBF) identificam que pode ser um banco DBase, Paradox ou um afim, e pelo que entendo são tabelas que fazem parte de um mesmo banco.
Essa SQL vc pode colocar em seu programa ou no gencenciador de banco que vc está usando, pois é uma SQL padrão ANSI, e suportada por qq programa.
Se eu estiver enganado, ou compreendioo errado apenas desconsidere
cpdinfohelp
cpdinfohelp Novo Membro Registrado
8 Mensagens 0 Curtidas
#5 Por cpdinfohelp
07/11/2003 - 09:42
olá cerberusnet!


fui compilar e deu o seguinte erro
Invalid use of keyword TOKEN INTO

alterei o nome do 3º banco e diminui campo veja o q tentei

procedure TForm1.Button1Click(Sender: TObject);
begin
With Qtudo do
begin
close;
Sql.clear;
Sql.add('SELECT NTF.NOTA, NTF.FILIAL, NTF_ITEM.COD_PROD, NTF_ITEM.QUANT, INTO ITENS_NOTA FROM NTF_ITEM LEFT JOIN NTF ON NTF_ITEM.NOTA = NTF.NOTA');
open;
end;

end;
Cerberusnet
Cerberusnet Membro Junior Registrado
77 Mensagens 0 Curtidas
#6 Por Cerberusnet
07/11/2003 - 16:50
Desculpa a demora em responder, mas a sintaxe pelo que te passei antes está correta. Mas é pra gerar uma nova tabela (NTF_TUDO), e não pra ser visualizada.
Se vc quer apenas ver o resultado da união das outras duas, sem precisar gerar a terceira tabela, vc está construindo uma query, que pode ser consultada a qq momento, tirando a espressão "INTO NTF_TUDO" da SQL original.
A vírgula que vc colocou na sua adaptação não é pra existir (antes do INTO), mas e o fato de ele não reconhecer a expressão "INTO" revela ou que o programa não suporta (pouco provavel) ou que o uso foi inadequado ( explicação mais plausível), Essa instrução SQL não é pra ser visualizada, mas apenas executada, para gerar a nova tabela.
Mas para ser vista, faça a alteração que citei acima e veja se dá certo

Desculpe de novo a demora, e boa sorte
OBS: Vc está usando Delphi?
romulo
romulo General de Pijama Registrado
7.4K Mensagens 0 Curtidas
#7 Por romulo
10/11/2003 - 19:39
Faça o seguinte:


with Qtudo do
begin
SQL.Clear;
SQL.Append('INSERT INTO NTF_TUDO');
SQL.Append('SELECT NTF_ITEM.NOTA, NTF.FILIAL, NTF.COD_CLI,');
SQL.Append('NTF_ITEM.COD_PROD, NTF_ITEM.QUANT, NTF_ITEM.VALOR_UNIT');
SQL.Append('FROM NTF_ITEM LEFT JOIN NTF ON NTF_ITEM.NOTA = NTF.NOTA');
ExecSQL;
end;


Com esse código você vai inserir os dados no arquivo NTF_TUDO, que já tem que estar previamente criado.
Minha coleção de jogos (todos originais)
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal