Ajuda com instrucao SQL, soma e mult.
Tenho esta tabela
| NNota | Produto | Qtd | Valor Unitario |
| | | | |
| | | | |
| | | | |
| | | | |
como faco via sql, para que cada produto seja multiplicado pela quantidade, e que todo resutado seja somado com o proximo registro para se obter um valor total a ser pago ?
Como se fosse uma nota fiscal..
Obrigado.
| NNota | Produto | Qtd | Valor Unitario |
| | | | |
| | | | |
| | | | |
| | | | |
como faco via sql, para que cada produto seja multiplicado pela quantidade, e que todo resutado seja somado com o proximo registro para se obter um valor total a ser pago ?
Como se fosse uma nota fiscal..
Obrigado.
Geisonc
Curtidas 0
Respostas
Steve_narancic
14/11/2006
Select sum(QTD * VALOR) from TABELA
GOSTEI 0
Geisonc
14/11/2006
Obrigado, funcionou OK.
GOSTEI 0
Geisonc
14/11/2006
olhem só:
funciona belezinha, mas se tem algum preço tipo 16,86 * 2 , ele gera um numero muito grande. Há uma maneira de deixar somente com duas casas decimais?
lembrando q o componente que está recebendo eh um label.
modulo.qTrocaPecas.SQL.Clear; modulo.qTrocaPecas.SQL.Add(´Select SUM(qtd * valorunitario) as totalaqui from tbtrocapecas where nnota = :ennota´); modulo.qTrocaPecas.ParamByName(´ennota´).Asinteger:=(strtoint(ennota.Text)); modulo.qTrocaPecas.Open; LSubTotal.Caption:=(floattostr(modulo.qTrocaPecas.fieldByName(´totalaqui´).asfloat));
funciona belezinha, mas se tem algum preço tipo 16,86 * 2 , ele gera um numero muito grande. Há uma maneira de deixar somente com duas casas decimais?
lembrando q o componente que está recebendo eh um label.
GOSTEI 0
Steve_narancic
14/11/2006
odulo.qTrocaPecas.SQL.Clear; modulo.qTrocaPecas.SQL.Add(´Select cast(SUM(qtd * valorunitario)as numeric(15,2)) as totalaqui from tbtrocapecas where nnota = :ennota´); modulo.qTrocaPecas.ParamByName(´ennota´).Asinteger:=(strtoint(ennota.Text)); modulo.qTrocaPecas.Open; LSubTotal.Caption:=(floattostr(modulo.qTrocaPecas.fieldByName(´totalaqui´).asfloat));
Através de um CAST
GOSTEI 0
Geisonc
14/11/2006
humm... interessante !
mas, ta dando um erro nessa parte
como estou usando o componente zeus, será q ele ta barrando algo ?
mas, ta dando um erro nessa parte
as numeric(15,2))
como estou usando o componente zeus, será q ele ta barrando algo ?
GOSTEI 0
Steve_narancic
14/11/2006
seu banco é firebird? senão substitua numeric(15,2) pelo tipo para o qual voce quer converter.
Ex.: se voce substituir numeric(15,2) por integer o resultado sera do tipo integer.
Ex.: se voce substituir numeric(15,2) por integer o resultado sera do tipo integer.
GOSTEI 0
Geisonc
14/11/2006
Uso MYSQL.
Nao sei pq cargas d´agua nao deu certo... e eu procurei no google tbem, e todos estavam da maneira q vc escreveu.
mas, fiz assim. meu campo estava com tipo float, fui na estrutura e mudei para numeric(15,2)
agora ta mostrando belezinha.
Obrigado pela ajuda.
Nao sei pq cargas d´agua nao deu certo... e eu procurei no google tbem, e todos estavam da maneira q vc escreveu.
mas, fiz assim. meu campo estava com tipo float, fui na estrutura e mudei para numeric(15,2)
agora ta mostrando belezinha.
Obrigado pela ajuda.
GOSTEI 0