Bom dia Pessoal!
Gostaria de uma ajuda da galera do grupo...
Tenho 4 tabelas com os seguintes campos:
1) TB_1: CHAVE | ESTAÇÃO | CONSTRUTORA
2) TB_2: CHAVE | ESTAÇÃO | PROJETO
3) TB_3: CHAVE | ANALISTA
4) TB_4: CHAVE | FISCAL
Preciso visualizá-las em uma única tabela, com o campo CHAVE em comum, só que tenho registros exclusivos ou não, nas TB_1 e TB_2.
Nas TB_3 e TB_4, todos os registros estão contidos em uma das anteriores.
Fiz o seguinte:
Só que ficou muito lento (de 2 a 4 min), uma vez que cada tabela dessa tem +/- 100mil registros. Quase sempre tbm, fecha o Access sozinho durante essa execução. Elas estão em rede, exceto a TB_5, que crio ela local, justamente para ficar "mais rápido"... rs
Eu não preciso necessariamente criar uma nova tabela, preciso apenas carregar todas essas informações mescladas num subformulário para consulta. Essa maneira que fiz foi a maneira que consegui.
Teria alguma outra maneira de eu fazer isso de forma mais rápida e eficiente???
Desde já agradeço a atenção de todos!!!!
Gostaria de uma ajuda da galera do grupo...
Tenho 4 tabelas com os seguintes campos:
1) TB_1: CHAVE | ESTAÇÃO | CONSTRUTORA
2) TB_2: CHAVE | ESTAÇÃO | PROJETO
3) TB_3: CHAVE | ANALISTA
4) TB_4: CHAVE | FISCAL
Preciso visualizá-las em uma única tabela, com o campo CHAVE em comum, só que tenho registros exclusivos ou não, nas TB_1 e TB_2.
Nas TB_3 e TB_4, todos os registros estão contidos em uma das anteriores.
Fiz o seguinte:
- Código:
xBancoAtual.Execute "DELETE * FROM TB_5"
xBancoAtual.Execute "INSERT INTO TB_5 (CHAVE, ESTAÇÃO, CONSTRUTORA, PROJETO, ANALISTA, FISCAL) " _
& "SELECT Nz(TB_1.CHAVE, TB_2.CHAVE) as CHAVE, Nz(TB_1.ESTAÇÃO, TB_2.ESTAÇÃO) as ESTAÇÃO, TB_1.CONSTRUTORA, TB_2.PROJETO, TB_3.ANALISTA, TB_4.FISCAL " _
& "FROM TB_2 LEFT JOIN (TB_3 RIGHT JOIN (TB_4 RIGHT JOIN TB_1 ON TB_4.CHAVE = TB_1.CHAVE) ON TB_3.CHAVE=TB_1.CHAVE) ON TB_2.CHAVE=TB_1.CHAVE " _
& "WHERE NOT TB_2.CHAVE IS NULL;"
xBancoAtual.Execute "INSERT INTO TB_5 (CHAVE, ESTAÇÃO, CONSTRUTORA, PROJETO, ANALISTA, FISCAL) " _
& "SELECT TB_1.CHAVE, TB_1.ESTAÇÃO, TB_1.CONSTRUTORA, '-', TB_3.ANALISTA, TB_4.FISCAL " _
& "FROM TB_2 RIGHT JOIN (TB_3 RIGHT JOIN (TB_4 RIGHT JOIN TB_1 ON TB_4.CHAVE = TB_1.CHAVE) ON TB_3.CHAVE=TB_1.CHAVE) ON TB_2.CHAVE=TB_1.CHAVE " _
& "WHERE TB_2.CHAVE IS NULL;"
Só que ficou muito lento (de 2 a 4 min), uma vez que cada tabela dessa tem +/- 100mil registros. Quase sempre tbm, fecha o Access sozinho durante essa execução. Elas estão em rede, exceto a TB_5, que crio ela local, justamente para ficar "mais rápido"... rs
Eu não preciso necessariamente criar uma nova tabela, preciso apenas carregar todas essas informações mescladas num subformulário para consulta. Essa maneira que fiz foi a maneira que consegui.
Teria alguma outra maneira de eu fazer isso de forma mais rápida e eficiente???
Desde já agradeço a atenção de todos!!!!