 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Ale-Spy Novato

Registrado: Quinta-Feira, 28 de Dezembro de 2006 Mensagens: 12
|
Enviada: Sex Fev 23, 2007 9:04 am Assunto: Sql em formulas matemáticas. |
|
|
Olá,
Estou com uma dúvida em selecionar uma tabela da qual fiz chamada Produtos, está tabela está com a seguinte estrutura....
| Código: | Tbl Produtos
ID_Produto | Inteiro
Nome_Produto | String
Qtd_Produto | Inteiro
Preço_Unitário | Monetário |
Preçiso fazer uma consulta ao banco de dados que me retorne o valor total ($$) da quantidade de produtos que tenho. Porém para fazer isso terei que multiplicar o campo Preço_Unitário pelo Qtd_Produto em cada linha da tabela depois somando todos os resultados....
| Código: |
____________________________________________________________________________
| ID_Produto | Nome_Produto | Qtd_Produto | Preço_Unitário |
| 1 | Shampoo 1 | 2 | 3,00 |
| 2 | Shampoo 2 | 5 | 2,00 |
----------------------------------------------------------------------------
|
Neste exemplo ele multiplicaria o 2 pelo 3,00 obtendo 6,00 na primeira linha da tabela,
em seguida multiplicaria 5 por 2,00 obtendo 10,00 na segunda linha, somando tudo eu teria o valor total de 16,00 reais em produtos. Sou novo no delphi e não sou nenhum expert em SQL não sei se isso da pra fazer com sql ou se eu teria que criar alguma procedure para fazer isso para mim. Já estudei sql mas não encontrei nenhuma função matemática além da soma(), avg(), Max() e Min().
Fico grato desade já.
No aguardo. |
|
| Voltar ao Topo |
|
 |
LFer Novato

Registrado: Quinta-Feira, 15 de Fevereiro de 2007 Mensagens: 3
|
Enviada: Sex Fev 23, 2007 12:38 pm Assunto: |
|
|
Também não sou expert em SQL, conheço o básico.
Mas vamos lá.
Para que ele multiplique o preço unitário pela quantidade de produtos você pode fazer assim:
Select *, (Qtd_Produto * Preco_Unitario) as Valor_Item
From Produtos
Para o total, acredito que você terá que fazer outra consulta ao banco, utilizando o comando
Select sum (Qtd_Produto * Preco_Unitario) as Valor_Total
Não testei os comandos, mas acredito que devam funcionar. Não sou um expert em SQL, então recomendaria que você visse também uma segunda opinião sobre isso, ok? Qualquer coisa, manda MP.
Luís |
|
| Voltar ao Topo |
|
 |
Ale-Spy Novato

Registrado: Quinta-Feira, 28 de Dezembro de 2006 Mensagens: 12
|
Enviada: Sex Fev 23, 2007 2:01 pm Assunto: |
|
|
Certo LFer,
com sua resposta tentei até fazer outra tarefa mais simples antes dessa....
peguei uma tabela sobre uma agenda da qual queria somar todos os preços de uma determinada data, usei a seguinte sintaxe sql....
| Código: | | select soma(Preço) from agenda where Data = :data |
o :data é aonde vai entrar a data escolhida pelo usuário, porém quando vou executar essa sintaxe me aparece um erro com a seguinte mensagem...
| Código: | | "Capability not supported" |
Estou usando paradox, acho que por ele ser meio antigo ele não está aceitando a sintaxe.... gostaria de saber se é isso mesmo ou se existe outro método de somar o valor de todos os campos de uma tabela....
Abraços...
Fico no aguardo. |
|
| Voltar ao Topo |
|
 |
LFer Novato

Registrado: Quinta-Feira, 15 de Fevereiro de 2007 Mensagens: 3
|
Enviada: Sex Fev 23, 2007 4:35 pm Assunto: |
|
|
Você está escrevendo a SQL exatamente assim como você postou?
Se sim, troque o "soma" por "sum", que é o comando SQL utilizado para retornar a soma de campos. Ficaria assim
| Código: | Select Sum (Preco) as Preco
From Agenda
Where Data= :pdata |
O 'as Preco' na primeira linha é só para ele apresentar a coluna como Preco. Caso não fosse incluído, o nome da coluna ficaria SUM. Mas não é necessário incluí-lo, somente se você quiser.
Qualquer coisa, dá um toque.
Luís |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|