Ajuda com instrucao SQL, soma e mult.

Delphi

14/11/2006

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.


Geisonc

Geisonc

Curtidas 0

Respostas

Steve_narancic

Steve_narancic

14/11/2006

Select sum(QTD * VALOR) from TABELA



GOSTEI 0
Geisonc

Geisonc

14/11/2006

Obrigado, funcionou OK.


GOSTEI 0
Geisonc

Geisonc

14/11/2006

olhem só:

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

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

Geisonc

14/11/2006

humm... interessante !
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

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.


GOSTEI 0
Geisonc

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.


GOSTEI 0
POSTAR