Erro convert
23/10/2013
0
Tenho esse código, que preciso fazer o calculo de alguns itens que tem no estoque, faço uma substituição de Terreo para 0 na coluna andar, pra que seja feito uma ordenação por andar, ai quando peço pra calcular tudo que seria o ultimo select, aparece a seguinte msg de erro.
Mensagem 245, Nível 16, Estado 1, Linha 1
Falha ao converter o varchar valor 'Total' para o tipo de dados int.
select
ROW_NUMBER() OVER(ORDER BY convert(int, replace(replace(replace(ANDAR, 'Terreo', ' '),' ',0),'º',' '))) AS id_Linha,
convert(int, replace(replace(ANDAR, 'Terreo', ' '), ' ', 0)) Andar,
COUNT(*) as 'Quantidade'
from tabela
where ID_CATEGORIA = 2 --
and ID_STATUS = 1
group by ANDAR
union
select
@@ROWCOUNT,
'Total',
count(*) 'Quantidade'
from tabela
where ID_CATEGORIA = 2
and ID_STATUS = 1
group by ANDAR
Simone
Posts
23/10/2013
Joel Rodrigues
23/10/2013
Simone
tem que ficar assim
Total 70
Não teria outra solução?
23/10/2013
Simone
with dispositivos_andar
as
(
select
ROW_NUMBER() OVER(ORDER BY convert(int, replace(replace(replace(ANDAR, 'Terreo', ' '),' ',0),'º',' '))) AS id_Linha,
replace(ANDAR, 'º', '') as 'Andar',
COUNT(*) as 'Quantidade'
from tabela
where ID_CATEGORIA = 2
and ID_STATUS = 1
group by ANDAR
)
select
disp1.id_Linha,
disp1.Andar,
disp1.Quantidade
from dispositivos_andar as disp1
union all
select
@@ROWCOUNT,
'Total Geral',
sum (disp2.Quantidade) as Quantidade
from dispositivos_andar as disp2
23/10/2013
Joel Rodrigues
Que bom que deu certo e obrigado por compartilhar a solução.
Tópico concluído.
Clique aqui para fazer login e interagir na Comunidade :)