Jump to content

Markleber

Members
  • Content count

    6
  • Joined

  • Last visited

Community Reputation

0 Comum

About Markleber

  • Birthday 11/23/1967

Informações Pessoais

  • Sexo
    Masculino
  • Localização
    R. Helena Aparecida Secol, 160 - Apto. 143 B
  • Interesses
    Visual FoxPro

Contato

  1. Markleber

    Comparar duas tabelas com registros...

    Comando acima, resolvido.
  2. Boa tarde à todos... Sou totalmente leigo em SQL e estou precisando de uma ajuda de vocês, aliás, um excelente ajuda. Tenho duas tabelas abaixo: Tabela linaus07 d01 d02 d03 d04 d05 d06 d07 10 11 12 13 14 15 16 10 11 12 13 14 16 17 10 11 12 13 14 16 22 Tabela linrep07 d01 d02 d03 d04 d05 d06 d07 d08 d09 d10 d11 d12 d13 d14 d15 1 2 3 4 5 6 7 10 11 12 13 14 16 17 22 1 2 3 4 5 6 7 8 10 11 12 13 14 16 17 1 2 3 4 5 6 7 9 10 11 12 13 14 16 22 Então, o que preciso...??? Pego o 1 registro da tabela linaus07 contendo 7 campos e confronto com todos os registros da tabela linrep07 contendo 15 campos, reparem que o primeiro registro da tabela linaus07, confrontando com a tabela linrep07, em nenhum momento continha 7 iguais nos registros, então, não preciso fazer nada, porém, repare agora, que o segundo registro da tabela linaus07, confrontando com a tabela linrep07, encontramos 7 campos exatamente nos 15 campos da outra tabela, então, pego o registro da tabela linrep07 e gravo em outro banco de dados (um novo), o registro que contem esses 15 campos que tinham os 7 campos da tabela linaus07. o que tem que ser respeitado... Cada registro da tabela linaus07 contendo 7 campos, irá passar em todos os registros da tabela linrep07 contendo 15 campos e irá colocar num novo banco de dados, todos os registros que da tabela linrep07 tiverem exatamente os 7 campos da tabela linaus07 e ao final, esse novo banco, terá com certeza muito registros, mas preciso salvá-los em um arquivo .txt com o separador "-" entre os campos... Espero ter sido claro... Obrigado MARCELO SAMPAIO
  3. Boa noite Pessoal... Preciso de uma ajuda com duas questões: 1a. Baseando-se na rotina abaixo: SELECT linresul DELETE ALL PACK APPEND FROM linresul.txt DELIMITED WITH CHARACTER "-" GO vsor-1 SCATTER FIELDS linresul.d01,linresul.d02,linresul.d03,linresul.d04,linresul.d05,linresul.d06,linresul.d07,linresul.d08,linresul.d09,; linresul.d10,linresul.d11,linresul.d12,linresul.d13,linresul.d14,linresul.d15 TO arr01 SELECT lifiltro DELETE ALL PACK APPEND FROM linfingr.txt DELIMITED WITH CHARACTER "-" replace ALL lifiltro.rep WITH 0 SELECT libackup DELETE ALL PACK SELECT lifiltro SET ORDER TO lifiltro COUNT ALL TO vban GO TOP DO WHILE !EOF() WAIT WINDOW "AGUARDE !!! Separando LINHAS CONFIGURADAS do arquivo em GRUPOS e suas REPETÊNCIAS... Registro "+ALLTRIM(STR(vreg))+" de "+ALLTRIM(STR(vban)) NOWAIT SCATTER FIELDS lifiltro.d01,lifiltro.d02,lifiltro.d03,lifiltro.d04,lifiltro.d05,lifiltro.d06,lifiltro.d07,lifiltro.d08,lifiltro.d09,; lifiltro.d10,lifiltro.d11,lifiltro.d12,lifiltro.d13,lifiltro.d14,lifiltro.d15 TO arr02 FOR i = 1 TO 15 var1 = arr01 FOR j = 1 TO 15 var2 = arr02[j] IF var1 = var2 var3 = var3+1 ENDIF ENDFOR ENDFOR IF var3>0 replace lifiltro.rep WITH var3 ENDIF var1=0 var2=0 var3=0 IF !EOF() SKIP vreg=vreg+1 ELSE EXIT ENDIF ENDDO Reparem que tenho dois scatter's, ambos criando dois arrays, certo? Nessa rotina, o FOR conta entre os dois arrays, as quantidades iguais, porém, um por um elemento até completar 15 e isso num arquivo com mais de 1 milhão de registros, fica muito demorado. Pergunta: Existe como fazer a contagem dos elementos sem usar o FOR, contando o conjunto por exemplo: ARRAY01 terá os 15 elementos = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 ARRAY02 terá outros 15 elementos = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 16 Reparem que o FOR contaria os 15 elementos de cada array entre eles, encontrando 14 iguais entre os dois. Tem como contar os elementos dos arrays sem utilizar o FOR, pegaria todo o conjunto do array01 e acharia os iguais no array02? Com o FOR fica muito lento... 2a. Baseando-se que: ARRAY03 terá os 15 elementos = 01 02 03 07 08 10 05 06 09 04 11 12 13 14 15 Como fazer para que esse array fique ordenado como segue = 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15?
  4. Desculpe MOTTA, mas confuso estou eu, pois não conheço SQL, estou tentando conhecer... o fato não é uma definição correta, não é o problema real, qual o motivo ou o que originou... Fiz uma pergunta, e expliquei o que preciso, se vc sabe como ajudar, bom, ótimo, se não sabe, desculpe, apesar de você ser moderador, não venha com vídeos que não tem nada a ver, postei a mesma pergunta e expliquei em demais sites, e apesar de não ter resposta ainda para o meu problema, estão tentando me ajudar com script's e procedure, mas ainda não houve solução...
  5. Por exemplo... Tabela A com 17 campos INT, 4 registros como exemplo: reg 1 - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 reg 2 - 1 2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 reg 3 - 1 2 3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 reg 4 - 1 2 3 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Essa tabela A será duplicada para conferência, ou se não for necessário, não precisa... não sei, pois trabalho com array em programa e a execução do mesmo, demorou mais de 5 horas devido a quantidade de registros... o primeiro registro da tabela A, varre toda a tabela B que é duplicada em formato e registros, e conta 1 para o registro que existir 16 campos iguais entre os 17, indo até o final da tabela B, se a contagem do primeiro registro da tabela A na tabela B for igual a 96, ele mantem esse registro na tabela A, mas se a contagem for menor ou maior que 96, esse registro da tabela A é apagado. Pegamos o segundo registro da tabela A e fazemos a mesma coisa, contando os registros... Espero ter sido claro... Obrigado pela ajuda.
  6. Pessoal, Boa noite... Meu nome é MARCELO e estou conhecendo o SQL agora. Estou fazendo isso porque me disseram que utilizando o SQL seria melhor do que eu desenvolver um programa para contagem entre dois bancos de dados... Por ser novo, não sei nada ainda, então, vou deixar aqui um pedido de ajuda, explicando o que preciso em script ou ainda quem sabe em store procedure. Tenho a tabela A com 1.000 registros, tendo 17 campos INT, sendo preenchidos com dezenas. Preciso duplicar essa tabela A para a tabela B e incluir todos os mesmos registros da tabela A, depois, preciso que seja pego o primeiro registro da tabela A e que seja verificado na tabela B, a contagem de dezenas que atingirem exatamente 16 das 17 existentes do primeiro registro da tabela A e conte 1 para quando achar um registro de 16, e assim sucessivamente e até o final da tabela B. Quando chegar ao final da tabela B, se o contador for igual a 96, ele mantem o registro da tabela A que está sendo utilizado para ser verificado na tabela B, mas se ele for menor ou maior que 96, ele deleta da tabela A. Quando isso acabar, ele vai pro segundo registro da tabela A, varre novamente a tabela B da mesma forma e assim sucessivamente até chegar ao final da tabela A. Por fim, sobrarão apenas os registros da tabela A que tiverem 16 dezenas entre elas e que atingiram a contagem de 96. Obrigado pela atenção de todos.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.