Usuário com melhor resposta
Comando Case dentro de outro Case

Pergunta
-
Bom dia galera, estou com a seguinte duvida, desculpem pois é primeira vez que posto duvidas neste forum.
Em um select como faço para executar um case dentro de outro case ex.
case
when condicao='X' then
case condicao='Y' then sum (coluna) end VlComissao
end
pois desse jeito nao consigo o resultado esperado, alguem sabe como fazer isto obrigado galera
Respostas
-
Paulo,
Você pode ao invés de aninhar CASES fazer com que a condição seja composta
exemplo:
SELECT SITUACAO = CASE WHEN (CAMPO1 = X AND CAMPO2 = Y) THEN 1 WHEN (CAMPO1 = 1 AND (CAMPO2 = 3 AND CAMPO3 IS NULL)) THEN 2 ELSE 3 END FROM TABELA
Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 14 de dezembro de 2012 12:50
- Marcado como Resposta Ricardo Russo quarta-feira, 2 de janeiro de 2013 12:47
-
Paula, uma opção ao inves de voce colocar case dentro de case é fazer condições no proprio case, exemplo:
create table #temp (valor1 int, valor2 int) insert into #temp select 1,1 insert into #temp select 1,2 insert into #temp select 1,3 insert into #temp select 2,2 select *, Case when valor1 = valor2 and valor1 = 1 then 'valore iguais e numeros iguais a 1' else 'valores diferentes ou diferentes de 1' end as teste from #temp
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 14 de dezembro de 2012 12:50
- Marcado como Resposta Ricardo Russo quarta-feira, 2 de janeiro de 2013 12:47
Todas as Respostas
-
-
Paulo,
Você pode ao invés de aninhar CASES fazer com que a condição seja composta
exemplo:
SELECT SITUACAO = CASE WHEN (CAMPO1 = X AND CAMPO2 = Y) THEN 1 WHEN (CAMPO1 = 1 AND (CAMPO2 = 3 AND CAMPO3 IS NULL)) THEN 2 ELSE 3 END FROM TABELA
Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 14 de dezembro de 2012 12:50
- Marcado como Resposta Ricardo Russo quarta-feira, 2 de janeiro de 2013 12:47
-
Paula, uma opção ao inves de voce colocar case dentro de case é fazer condições no proprio case, exemplo:
create table #temp (valor1 int, valor2 int) insert into #temp select 1,1 insert into #temp select 1,2 insert into #temp select 1,3 insert into #temp select 2,2 select *, Case when valor1 = valor2 and valor1 = 1 then 'valore iguais e numeros iguais a 1' else 'valores diferentes ou diferentes de 1' end as teste from #temp
Alexandre Matayosi Conde Mauricio. Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.
- Sugerido como Resposta Junior Galvão - MVPMVP sexta-feira, 14 de dezembro de 2012 12:50
- Marcado como Resposta Ricardo Russo quarta-feira, 2 de janeiro de 2013 12:47