Array
(
)

Quebrando a cabeça com SQL

Felipe_cduarte
   - 19 ago 2004

Fala pessoal !!

Tem um SQL que tá me quebrando , nao achei nada na Net... Seguinte
tenho uma tabela com dois campos Codigo e Opcao. Os registros ficariam desta forma :

1 - S
2 - N
3 - S
4 - N
5 - N
e assim vai , sim ou não..

a pergunta é a seguinte : como fazer um sql pra ele retornar na mesma linha o total de Sim , total de Nao , percentual de sim e percentual de nao, em colunas , alguem sabe ??

[]´s

Aroldo Zanela
   - 19 ago 2004

Colega,

Veja este artigo: http://lib.seven.com.br/ampliar.asp?codcat=24&codartigo=558

Rafaelcf
   - 24 ago 2004

Lá vai entao:

create table #tmpteste(codigo int, tipo char)
insert into tmpteste values(1, ´S´)
insert into tmpteste values(2, ´N´ )
insert into tmpteste values(3, ´S´ )
insert into tmpteste values(4, ´N´ )
insert into tmpteste values(5, ´N´ )
insert into tmpteste values(6, ´N´ )
insert into tmpteste values(7, ´N´ )
insert into tmpteste values(8, ´N´ )
insert into tmpteste values(9, ´N´ )

select
sum(case
when tipo = ´S´
then (1)
else 0
end) TIPO_S
,
sum(case tipo
when ´N´
then (1)
else 0
end) TIPO_N,
convert(decimal(5,2),sum(case tipo
when ´S´
then (1)
else 0
end)) / sum(1.00) * 100 PERCENTUAL_S,
convert(decimal(5,2),sum(case tipo
when ´N´
then (1)
else 0
end)) / sum(1.00) * 100 PERCENTUAL_N
from #tmpteste

Felipe_cduarte
   - 24 ago 2004

Valeu Rafael , era isso mesmo !

[]´s