Ir para conteúdo

POWERED BY:

Arquivado

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

marina toda

Retorno de select (valores)

Recommended Posts

alguém pode me ajudar!!!!!!

 

Preciso executar uma select onde carregue 3 colunas de valores com condições diferentes dentro de uma mesma tabela.

 

Ex.: Select valor1, valor2, valor3 from TABELA

where valor1 in (código (01,02,03)) and

valor2 in (código (04,05,06)) and

valor3 in (código (10,11,12))

 

Grata

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se tem que atender as 3 condições ao mesmo tempo, use o AND normalmente, como abaixo.

 

Select valor1, valor2, valor3 from TABELA
where valor1 in (1,2,3) and
valor2 in (4,5,6) and
valor3 in (10,11,12)

Se for outra coisa, poste exemplos de como está os dados gravados e como deveria ser o retorno da consulta para melhor compreensão do problema.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde!

 

Dessa forma não atende no que eu preciso, vou dar um exemplo melhor com os resultados que eu preciso:

 

SELECT FUNCIONÁRIO, VALOR1, VALOR2, VALOR3 FROM PFUNC

WHERE EVENTO IN (01,02,03) 'DEVERÁ APARECER SOMADO NA COLUNA VALOR1'

AND EVENTO IN (04,05,06) 'DEVERÁ APARECER SOMADO NA COLUNA VALOR2'

AND EVENTO IN (07,08,09) 'DEVERÁ APARECER SOMADO NA COLUNA VALOR3'

 

==> RESULTADO

 

FUNCIONÁRIO

MARIA

Compartilhar este post


Link para o post
Compartilhar em outros sites

CONTINUANDO.... NO RESULTADO

 

===> RESULTADO

 

COLUNA COLUNA COLUNA COLUNA

 

FUNCIONÁRIO VALOR1 VALOR2 VALOR3

 

MARIA 100,00 150,00 200,00

 

Esse resultado seria um exemplo da soma dos eventos que tenho (01,02,03) Benefícios no campo Valor1

eventos (04,05,06) Descontos no campo valor2 e eventos (07,08,09) Salários no campo valor3.

 

Não sei se deu para entender mas o resultado que eu preciso seria separar as colunas dependendo da condição que eu tenho através dos eventos.

 

Obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que entendi o seu problema... no caso, não é questão de usar o CASE?

 

SELECT FUNCIONARIO,
		   SUM(CASE EVENTO IN (1,2,3) THEN VALOR ELSE 0 END) AS BENEFICIOS,
		   SUM(CASE EVENTO IN (4,5,6) THEN VALOR ELSE 0 END) AS DESCONTOS,
		   SUM(CASE EVENTO IN (7,8,9) THEN VALOR ELSE 0 END) AS SALARIO
FROM TABELA
GROUP BY FUNCIONARIO

No caso acima, digamos que sua tabela fosse assim:

 

Funcionario - Valor - Evento
Jose - 100 - 1
Jose - 50 - 2
Jose - 30 -5
Jose - 20 - 6
Jose - 1000 - 7

Seu retorno seria:

 

Funcionario - Beneficio - Desconto - Salario
Jose - 150 - 50 - 1000

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde!

 

o Case IN não está funcionando para carregar vários códigos segue consulta abaixo:

Será que deve-se usar outra forma???

 

Obrigada.

 

SELECT PFMOVCC.CHAPA AS CHAPA,

 

PFMOVCC.ANOCOMP AS ANO,

 

PFMOVCC.MESCOMP AS MES,

 

SUM(CASE PFMOVCC.CODEVENTO IN('0014','0320')THEN VALOR ELSE 0 END)AS ASSIST, ==>dessa forma não funciona

 

SUM(CASE PFMOVCC.CODEVENTO WHEN('0473')THEN VALOR ELSE 0 END)AS TESTE ==> dessa forma funciona mas carrega somente um código

 

FROM PFMOVCC

 

WHERE

 

PFMOVCC.ANOCOMP = 2009

 

AND PFMOVCC.MESCOMP = 2

 

AND PFMOVCC.CODCOLIGADA = 1

 

GROUPBY PFMOVCC.CHAPA, PFMOVCC.ANOCOMP, PFMOVCC.MESCOMP, PFMOVCC.NROPERIODO, PFMOVCC.CODEVENTO

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este campo CODEVENTO é um int ou varchar? Se for varchar, você pode tentar por no case algo do tipo:

 

SUM(CASE WHEN ((LTRIM(RTRIM(CODEVENTO)) = '0014') OR (LTRIM(RTRIM(CODEVENTO)) = '0320')) THEN VALOR ELSE 0 END)

E tire o CODEVENTO do Group By, deixe apenas no group by os campos que não entram no sum.

 

[]'S

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.