Fórum Ainda com problemas no Sql Erro Type mismatch in expression #192233

01/11/2003

0

Ainda estou com problemas nesta Sql, tenho que resolver isso no máximo até segunda feira. A primeira parte sozinha não ocaziona erro algum, funciona normalmente.

Select A.*, B.*, (B.nota1 + B.nota2 + B.nota3 + B.nota4)/4 As Media,´APR´ AS situacao from alunos A, Medias B

A segunda parte também sozinha funciona corretamente

select nota1,nota2,nota3,nota4,faltas,
(nota1+nota2+nota3+nota4)/4 as media,´APR´ AS situacao
from medias
where ( ( (nota1+nota2+nota3+nota4)/4 ) >= 5) and (faltas < 10)
union select nota1,nota2,nota3,nota4,faltas,
(nota1+nota2+nota3+nota4)/4 as media,´RPN´ AS situacao
from medias
where ( ( (nota1+nota2+nota3+nota4)/4 ) < 5) and (faltas < 10)union select nota1,nota2,nota3,nota4,faltas,
(nota1+nota2+nota3+nota4)/4 as media,´RPF´ AS situacao
from medias
where (faltas >= 10)

Porém quando juntos as duas ocorre uma mensagem :
Type mismatch in expression. (Tipo de dados incompativeis)

Select A.*, B.*, (B.nota1 + B.nota2 + B.nota3 + B.nota4)/4 As Media,´APR´ AS situacao
from alunos A, Medias B

where ( ( (b.nota1+b.nota2+b.nota3+b.nota4)/4 ) >= 5) and (b.faltas < 10)
union select b.nota1,b.nota2,b.nota3,b.nota4,b.faltas,
(b.nota1+b.nota2+b.nota3+b.nota4)/4 as b.media,´RPN´ AS b.situacao
from Medias

Neste caso tentei tirar o campo falta e deu o mesmo erro, acho que não está aceitando alguma coisa no from Medias, mas não tenho certeza,
ficaria muito grato se pudessem me ajudar.


Carlosdarienzo

Carlosdarienzo

Responder

Posts

02/11/2003

Adilsond

Em primeiro lugar, se voce olhar o comando UNION no help ´Local SQL Help´ verá que obrigatóriamente o UNION requer quantidade e tipagem de campos iguais.
Em segundo lugar, voce está fazendo um join mas não está especificando a junção entre as tabelas.
Em terceiro lugar, nomei apenas as colunas da primeira query que será assumido este nome para as colunas das demais querys.

Então ficaria algo assim:
select A.*,
       B.*,
       (B.nota1 + B.nota2 + B.nota3 + B.nota4) / 4 As Media,
       ´APR´ AS situacao
from alunos A,
     Medias B
where (B.nota1 + B.nota2 + B.nota3 + B.nota4) / 4 >= 5
  and B.faltas < 10
  and A.CdAluno = B.CdAluno
union
select A.*,
       B.*,
       (B.nota1 + B.nota2 + B.nota3 + B.nota4) / 4,
       ´RPN´
from alunos A,
     Medias B
where (B.nota1 + B.nota2 + B.nota3 + B.nota4) / 4 < 5
  and B.faltas < 10
  and A.CdAluno = B.CdAluno
union
select A.*,
       B.*,
       (B.nota1 + B.nota2 + B.nota3 + B.nota4) / 4,
       ´RPF´
from alunos A,
     Medias B
where B.faltas >= 10
  and A.CdAluno = B.CdAluno



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar