Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá Pessoal!!
Preciso ligar duas tabelas pelo código do funcionário, porém em uma tabela o registro se encontra diferente da outra. Por exemplo: Na tabela Funcionário o código é "2200", já na outra tabela ela possui o código "12200". E é exatamente esse numero "1" que preciso retirar. Mas temos um problema, pois os códigos dos funcionários tem um numero diferente de caracteres e por esse motivo não posso utilizar o comando Left, Right ou Mid. Ou seja um código pode ser "2200" e o outro pode ser '564" ou até "33548". O que eu preciso é retirar o primeiro numero "1" que aparece no registro da outra tabela. Não sei se eu consegui explicar bem....
Existe uma maneira de fazer isto?
Rodrigo Ramos Rocha
Rodrigo,
podes usar o MID()
Com o mid() voce define a posição inicial e caso seja OMITIDA o segundo parmetro, será pego todos os caracteres do campo após a posição inicial
Abaixo a ligação entre as tabelas acorre perfeitamente
Tabela1:
LOAD * INLINE [
CodEmp,Nome
200 ,João
220 ,José
3456 ,Manoel
123456,Maria
];
Tabela2:
LOAD
mid(CodEmp,2) as CodEmp,
Salario
INLINE [
CodEmp ,Salario
1200 ,2000
1220 ,2500
13456 ,3000
1123456,5000
];
| CodEmp | Nome | Salario |
|---|---|---|
| 200 | João | 2000 |
| 220 | José | 2500 |
| 3456 | Manoel | 3000 |
| 123456 | Maria | 5000 |

Rodrigo,
Testa isso:
Num(Subfield(codigo,'1',1)&Subfield(codigo,'1',2))
Rodrigo,
podes usar o MID()
Com o mid() voce define a posição inicial e caso seja OMITIDA o segundo parmetro, será pego todos os caracteres do campo após a posição inicial
Abaixo a ligação entre as tabelas acorre perfeitamente
Tabela1:
LOAD * INLINE [
CodEmp,Nome
200 ,João
220 ,José
3456 ,Manoel
123456,Maria
];
Tabela2:
LOAD
mid(CodEmp,2) as CodEmp,
Salario
INLINE [
CodEmp ,Salario
1200 ,2000
1220 ,2500
13456 ,3000
1123456,5000
];
| CodEmp | Nome | Salario |
|---|---|---|
| 200 | João | 2000 |
| 220 | José | 2500 |
| 3456 | Manoel | 3000 |
| 123456 | Maria | 5000 |

Thiago,
se tiver um código tipo
11213456
vai dar errado......
afurtado, respondi pelo celular e sequer testei a expressão...de fato, não daria certo.
A tua solução com o Mid funciona perfeitamente...![]()
Abs mestre!!
Só uma dúvida acerca do que ele quer: será que o "primeiro número 1" pode ocorrer numa posição diferente de 1? Se sim, o Mid(campo,2) não servirá né.
Rodrigo,
Se o que julgo ser seu requisito estiver correto (remover o primeiro número 1, independente de sua posição), gostaria de sugerir algo novo (que testei dessa vez, hehe):
Num(Left(CodEmp,Index(CodEmp,'1')-1)&Mid(CodEmp,Index(CodEmp,'1')+1))
Abs e Sucesso!
parti do pressuposto que o primeiro caractere é para ser retirado, independente do valor.
Valeu Alessandro!!
Deu certo aqui!!
Obrigado!!!
Opa Thiago!!
A solução do Alessandro funcionou aqui.
Como sempre, valeu mesmo a ajuda!!