Query p/ transformar texto em inteiro

07/07/2008

0

pessoal preciso fazer uma soma num campo texto, como poderia apenas na query converter os dados, segue abaixo o meu ex

select I.Cod_venda, I.Cod_Produto, P.Descricao_Produto, sum(I.Quantidade_VendaItens)  from VendaItens I


so que o camnpo I.Quantidade_VendaItens é texto, mais contem numeros..

tem como fazer a soma?


Cd.wagner.sena

Cd.wagner.sena

Responder

Posts

07/07/2008

Ara.es

Você pode usar o Cast ou Convert. para usar o convert faça:
  select I.Cod_venda,
           I.Cod_Produto,
           P.Descricao_Produto,
           sum( Convert( Numeric(14,2) , I.Quantidade_VendaItens ) )
  from VendaItens I


nesse caso convertir o texto para o tipo NUMERIC(14,2), mas vc pode converter para outros tipos. Flw !!


Responder

07/07/2008

Cd.wagner.sena

esse é meu codigo

select I.Cod_venda, I.Cod_Produto, P.Descricao_Produto, sum( Convert( Numeric(14,2) , I.Quantidade_VendaItens ) )  from VendaItens I
join Venda V on V.cod_Venda = I.Cod_venda
join Produto P on P.Cod_Produto = I.Cod_Produto
where status_Venda <> ´C´
group by I.Cod_venda, I.Cod_Produto, P.Descricao_Produto, sum( Convert( Numeric(14,2) , I.Quantidade_VendaItens ) )


sop que dá este error

Server: Msg 144, Level 15, State 1, Line 5
Cannot use an aggregate or a subquery in an expression used for the group by list of a GROUP BY clause.


so que o texto que tem na base é decimal, tipo 1,00


Responder

07/07/2008

Ara.es

tente tirar do group by o SUM.. e ve se funciona. Flw !!


Responder

07/07/2008

Cd.wagner.sena

da esse error

Server: Msg 8114, Level 16, State 5, Line 1 Error converting data type varchar to numeric.



Responder

08/07/2008

Ara.es

por acaso nao existe algum registro que contem valores nao numericos no campo que está tentando converter?? verifique isso..


Responder

10/07/2008

Flasp2000

select I.Cod_venda,
I.Cod_Produto,
P.Descricao_Produto,
sum( Convert( Numeric(14,2) , I.Quantidade_VendaItens ) )
from VendaItens I
join Venda V
on (V.cod_Venda = I.Cod_venda)
join Produto P
on (P.Cod_Produto = I.Cod_Produto)
where status_Venda <> ´C´
group by I.Cod_venda,
I.Cod_Produto,
P.Descricao_Produto


Sempre que você soma um campo, apenas agrupe as outras colunas.

Abraços.


Responder

10/07/2008

Flasp2000

ESSE CAMPO QUE VC ESTA CONVERTENDO, QUAL O DATATYPE DELE ???


Responder

22/07/2008

Eduardocaetano

Companheiro, faça:
sum( Convert( Numeric(14,2) , replace(I.Quantidade_VendaItens, ´,´ , ´.´ ) ) )


Deve ser por ter campos que o sql continua entendendo como texto, pois ´,´ é entendido como texto. O [b:2ecc5dcc1b]replace[/b:2ecc5dcc1b] trata isso
Há Braços.

esse é meu codigo
select I.Cod_venda, I.Cod_Produto, P.Descricao_Produto, sum( Convert( Numeric(14,2) , I.Quantidade_VendaItens ) )  from VendaItens I
join Venda V on V.cod_Venda = I.Cod_venda
join Produto P on P.Cod_Produto = I.Cod_Produto
where status_Venda <> ´C´
group by I.Cod_venda, I.Cod_Produto, P.Descricao_Produto, sum( Convert( Numeric(14,2) , I.Quantidade_VendaItens ) )
sop que dá este error
Server: Msg 144, Level 15, State 1, Line 5
Cannot use an aggregate or a subquery in an expression used for the group by list of a GROUP BY clause.
so que o texto que tem na base é decimal, tipo 1,00



Responder

30/07/2008

Flasp2000

AMIGO TIRE DO SEU GROUP BY O SUM


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar