Array
(
)

CONVERTER LETRAS EM NÚMERO

Valmir Silva
   - 21 nov 2013

EU TENHO O SEGUINTE CÓDIGO:
SELECT MATDISCIPLINA.ANO_LETIVO, Left(MATDISCIPLINA.TURMAID,2) AS Fluxo, MATDISCIPLINA.TURMAID, MATDISCIPLINA.ESCOLA, Mid(MATDISCIPLINA.TURMAID,3,1) AS Turno, Mid(MATDISCIPLINA.TURMAID,5,1) AS Serie, Mid(MATDISCIPLINA.TURMAID,6,1) AS Turma, MATDISCIPLINA.DISCIPLINA, ALUNO.ALUNO, ALUNO.NOME_COMPL, TURMA.NUM_ALUNOS, MATTURMA.SITUACAO, First(NZ([CONCEITOFINAL_AJUST],0)) AS CONCEITOFINAL_AJUSTA
FROM TURMA INNER JOIN (ALUNO INNER JOIN (MATTURMA INNER JOIN MATDISCIPLINA ON (MATTURMA.TURMAID=MATDISCIPLINA.TURMAID) AND (MATTURMA.SEMESTRE_TURMA=MATDISCIPLINA.SEMESTRE_TURMA) AND (MATTURMA.ANO_LETIVO=MATDISCIPLINA.ANO_LETIVO) AND (MATTURMA.ESCOLA=MATDISCIPLINA.ESCOLA) AND (MATTURMA.ALUNO=MATDISCIPLINA.ALUNO)) ON ALUNO.ALUNO=MATTURMA.ALUNO) ON (TURMA.ESCOLA=MATTURMA.ESCOLA) AND (TURMA.ANO_LETIVO=MATTURMA.ANO_LETIVO) AND (TURMA.SEMESTRE_TURMA=MATTURMA.SEMESTRE_TURMA) AND (TURMA.TURMAID=MATTURMA.TURMAID)
GROUP BY MATDISCIPLINA.ANO_LETIVO, Left(MATDISCIPLINA.TURMAID,2), MATDISCIPLINA.TURMAID, MATDISCIPLINA.ESCOLA, Mid(MATDISCIPLINA.TURMAID,3,1), Mid(MATDISCIPLINA.TURMAID,5,1), Mid(MATDISCIPLINA.TURMAID,6,1), MATDISCIPLINA.DISCIPLINA, ALUNO.ALUNO, ALUNO.NOME_COMPL, TURMA.NUM_ALUNOS, MATTURMA.SITUACAO
HAVING (((MATDISCIPLINA.ANO_LETIVO) Like [Ano Letivo:]) AND ((MATTURMA.SITUACAO)="Aprovado" Or (MATTURMA.SITUACAO)="Reprovado"))
ORDER BY Mid(MATDISCIPLINA.TURMAID,3,1), Mid(MATDISCIPLINA.TURMAID,5,1), Mid(MATDISCIPLINA.TURMAID,6,1), MATDISCIPLINA.DISCIPLINA, ALUNO.NOME_COMPL;
SENDO QUE O CAMPO: First(NZ([CONCEITOFINAL_AJUST],0)) AS CONCEITOFINAL_AJUSTA - ANTES ERA NUMÉRICO, AGORA É TEXTO (R, S OU I) POR ISSO NÃO ESTOU CONSEGUINDO GERAR A CONSULTA - TEM COMO INSERIR ALGUMA EXPRESSÃO QUE CONVERTA AS LETRAS R, S E I, EM NÚMEROS (TIPO R=5, S=10 E I=4 DE MODO QUE CONTINUE FAZENDO A OPERAÇÃO?

Alex Lekao
   - 21 nov 2013

Oi Bom dia!!!

Nao consegui entender muito bem, e nao pude analisar muito bem o seu codigo.

Vou me ater a basicamente a questao que vc disse da conversao, sugiro usar o Case, assim vc checa se for cada um deles vc muda para o outro.

Por exemplo:
#Código

case 
   when seu_campo = 'r' then 5 
   when seu_campo = 's' then 2 
   else 1 
end


Faz um teste e veja se resolve dentro do que vc esta querendo.

Espero ter ajudado.

Abraco.

Alex - Lekao

Isaac Jose
   - 21 nov 2013


Citação:
Oi Bom dia!!!

Nao consegui entender muito bem, e nao pude analisar muito bem o seu codigo.

Vou me ater a basicamente a questao que vc disse da conversao, sugiro usar o Case, assim vc checa se for cada um deles vc muda para o outro.

Por exemplo:
#Código

case 
   when seu_campo = 'r' then 5 
   when seu_campo = 's' then 2 
   else 1 
end


Faz um teste e veja se resolve dentro do que vc esta querendo.

Espero ter ajudado.

Abraco.

Alex - Lekao

boa tarde a todos....
Lekao... e isso mesmo..

porem por motivo de performace...

sugiro que seja criada uma tabela desse case...

att Isaac

Alex Lekao
   - 21 nov 2013

Legal...

foi a unica coisa que passou pela minha cabeca... rsrsr

maior correria... se a solucao era essa mesmo entao otimo... rsrs pensei certo. rsrsr

a nova tabela pode ser interessante sim, acho que deve ter menos peso na instrucao uma juncao que um case.

Obrigado.

Isaac Jose
   - 21 nov 2013


Citação:
Legal...

foi a unica coisa que passou pela minha cabeca... rsrsr

maior correria... se a solucao era essa mesmo entao otimo... rsrs pensei certo. rsrsr

a nova tabela pode ser interessante sim, acho que deve ter menos peso na instrucao uma juncao que um case.

Obrigado.


sim bem menor porem não sabemos se o nosso pensamento esta correto.kkkk
então vamos ver quando o amigo responder :)

Alex Lekao
   - 21 nov 2013

blz...

sigo acompanhando... rsrs

Valmir Silva
   - 22 nov 2013

Valeu vou tentar

Valmir Silva
   - 22 nov 2013

EM QUE PARTE DO CÓDIGO EU COLOCO A EXPRESSÃO INDICADA?

Valmir Silva
   - 22 nov 2013

o código é de uma consulta do banco de dados access (modo sql)