Fórum Comparar Tabelas (Firebird) #337768
13/02/2007
0
tenho duas tabelas onde elas tem basicamente os mesmos dados, gostaria de saber como faço pra comparar elas, ou seja verificar na tabela ´original´ se foi incluso algum registro, se sim, grava na cópia. Estava fazendo por [b:f52c11bc7d]While not fimtabela do[/b:f52c11bc7d] mas isso ocasiona demora na abertura da tela... existe algum modo de fazer isso automático?
D7, BDE, Firebird
Facc
Curtir tópico
+ 0Posts
13/02/2007
Facc
Tabela Cópia
CREATE TABLE TMPPRODUTO ( CODPROD CHAR(7) NOT NULL, IMPRIMIR CHAR(1), PRODUTO VARCHAR(60), COD_PEDIDO CHAR(10), QTDE NUMERIC(15,2) );
Tabela Original
CREATE TABLE CADPRODUTO ( REF_PROD VARCHAR(7) NOT NULL, DESCR_PROD VARCHAR(60), UNID_PROD VARCHAR(2), OBS_PROD BLOB SUB_TYPE 1 SEGMENT SIZE 80, ATIVO_PROD VARCHAR(1), CLASSFISCAL VARCHAR(10), COMPRADO_PROD VARCHAR(1), CADASTRO_PROD DATE, FOTO_PROD BLOB SUB_TYPE 0 SEGMENT SIZE 80, FOTO2_PROD BLOB SUB_TYPE 0 SEGMENT SIZE 80, TIPOFOTO2 VARCHAR(1), IMPRIME_PROD VARCHAR(1), CODSTATUS_PROD VARCHAR(2), COLECAO_PROD VARCHAR(3), CUSTOFIXO_PROD DOUBLE PRECISION, TOTALSERV_PROD DOUBLE PRECISION, TOTALCMED_PROD DOUBLE PRECISION, TOTALKIT_PROD DOUBLE PRECISION, CODGRUPO_PROD VARCHAR(3), CUSTO_PROD DOUBLE PRECISION, MGLUCRO_PROD DOUBLE PRECISION, PRVENDA_PROD DOUBLE PRECISION, PESOLIQ_PROD DOUBLE PRECISION, VALOR_TAB DOUBLE PRECISION, VALOR_TAB1 DOUBLE PRECISION, VALOR_TAB2 DOUBLE PRECISION, VALOR_TAB3 DOUBLE PRECISION, VALOR_TAB4 DOUBLE PRECISION, VALOR_TAB5 DOUBLE PRECISION, VALOR_TAB6 DOUBLE PRECISION, VALOR_TAB7 DOUBLE PRECISION, VALOR_TAB8 DOUBLE PRECISION, VALOR_TAB9 DOUBLE PRECISION, VALOR_TAB10 DOUBLE PRECISION, VALOR_TAB11 DOUBLE PRECISION, VALOR_TAB12 DOUBLE PRECISION, VALOR_TAB13 DOUBLE PRECISION, VALOR_TAB14 DOUBLE PRECISION, VALOR_TAB15 DOUBLE PRECISION, TOTAL DOUBLE PRECISION, FORNECEDOR VARCHAR(5), PRODUZIDO VARCHAR(1), KIT VARCHAR(1), TIPO_FOTO VARCHAR(1), FATORSUG DOUBLE PRECISION, CUSTOSUG DOUBLE PRECISION, CONGELACUSTO VARCHAR(1), CONGELACUSTO2 VARCHAR(1), CODCOMPOSICAO VARCHAR(3), COD_TAM VARCHAR(3), COR_TAB VARCHAR(100), DESCR_2QUALIDADE VARCHAR(30), TRABTAMPADRAO VARCHAR(1), QUITAR VARCHAR(1), CODTECIDOPRINCIPAL VARCHAR(5), TOTCUSTOCORTAMANHO DOUBLE PRECISION, TOTCUSTOCORQTDEMEDIA DOUBLE PRECISION, TOTCUSTOCORESQTDEMEDIA DOUBLE PRECISION, TIPOCUSTO VARCHAR(1), ESTOQUEMINIMO DOUBLE PRECISION, PRECOCOMPRA DOUBLE PRECISION, EXPCOMERCIO VARCHAR(1), CODFORNECEDOR VARCHAR(15), COMISSAO DOUBLE PRECISION, CODFORNECEDOR2 VARCHAR(15), CODFAMILIA_PROD VARCHAR(2), SUBPRODUTO CHAR(1) DEFAULT ´N´, POSVENDA CHAR(1), TIPOGAR CHAR(1), TIPOCONTATO CHAR(1), TEMPOGAR INTEGER, TEMPOCONTATO INTEGER, VLRICMS NUMERIC(15,2), PERCREDUCAOICMS NUMERIC(15,2), QTDEVOLUME NUMERIC(15,2), EXPORTAR CHAR(1), PORCDFC DOUBLE PRECISION, SEXO CHAR(1) DEFAULT ´U´, FOTO3_PROD BLOB SUB_TYPE 0 SEGMENT SIZE 80, TIPOFOTO3 CHAR(1), FATURAR DOUBLE PRECISION );
Gostei + 0
13/02/2007
Facc
Gostei + 0
13/02/2007
Emerson Nascimento
insert into TMPPRODUTO (CODPROD, IMPRIMIR, PRODUTO, COD_PEDIDO, QTDE) select REF_PROD, IMPRIME_PROD, DESCR_PROD, ´0000000000´, 0 from CADPRODUTO where not REF_PROD in (select CODPROD from TMPPRODUTO)
publique a correlação entre os campos.
no caso acima, como eu não sei de onde vem os valores para os campos COD_PEDIDO e QTDE, coloquei 0 (zero)
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)