Quebrando a cabeça com SQL
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
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
Felipe_cduarte
Curtidas 0
Respostas
Aroldo Zanela
19/08/2004
Colega,
Veja este artigo: http://lib.seven.com.br/ampliar.asp?codcat=24&codartigo=558
Veja este artigo: http://lib.seven.com.br/ampliar.asp?codcat=24&codartigo=558
GOSTEI 0
Rafaelcf
19/08/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
=-=-=-=-=-=-=-=-=-=-=-=
Rafael Cunha de Freitas.
Analista de Sistemas
=-=-=-=-=-=-=-=-=-=-=-=
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
=-=-=-=-=-=-=-=-=-=-=-=
Rafael Cunha de Freitas.
Analista de Sistemas
=-=-=-=-=-=-=-=-=-=-=-=
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
GOSTEI 0
Felipe_cduarte
19/08/2004
Valeu Rafael , era isso mesmo !
[]´s
[]´s
GOSTEI 0