Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

csapi

[Resolvido] Calcular expressões no MYSQL

Recommended Posts

Caros colegas estou fazendo um pesquisa no mysql e estou usando a seguinte select:

 

SELECT if(`tab_funcionario_folha`.`ID_FUNCAO`=22,1,0) As Expr1,if(`tab_funcionario_folha`.`ID_FUNCAO`=23,1,0) as Expr2 FROM `tab_funcionario_folha`;

 

o resultado fica assim:

 

Expr1 | Expr2

-------------

1 0

0 1

1 1

 

Agora preciso calcular nesta mesma select a Expr1 e a Expr2 e mostrar o resulta na Expr3 como seria esta SELECT?

 

o resultado tera que ficar assim:

 

Expr1 | Expr2 | Expr3

---------------------

1 0 1

0 1 1

1 1 2

 

 

 

De ja agradeço a todos pela atenção

 

Cláudio

Compartilhar este post


Link para o post
Compartilhar em outros sites

de forma + simples

 

 

select Expr1,Expr2,(Expr1+Expr2) Expr3
from
(
SELECT if(`tab_funcionario_folha`.`ID_FUNCAO`=22,1,0) As Expr1,
      if(`tab_funcionario_folha`.`ID_FUNCAO`=23,1,0) as Expr2 
FROM `tab_funcionario_folha`)
)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Motta fiz exatamente como sugeriu acima, mas esta aparecendo o seguinte erro:

 

SQL execution erro # 1248. Res´ponse from the database:

every dereved table must have its own alias

 

O que pode ser, e como contornar isso.

 

Grato,

 

Cláudio

Compartilhar este post


Link para o post
Compartilhar em outros sites
SQL execution erro # 1248. Res´ponse from the database:

every dereved table must have its own alias

 

Pelo que entendi tabelas derivadas devem ter um alias(apelido).

 

Então , tente :

 

select Expr1,Expr2,(Expr1+Expr2) Expr3
from
(
SELECT if(`tab_funcionario_folha`.`ID_FUNCAO`=22,1,0) As Expr1,
      if(`tab_funcionario_folha`.`ID_FUNCAO`=23,1,0) as Expr2 
FROM `tab_funcionario_folha`)
) apelido

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu Motta deu certo, esta exatamente como eu preciso.

 

So não sei como fazer agora para marcar este post como [Resolvido]

 

Obrigado pela ajuda,

 

Cláudio

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.