ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Sql em formulas matemáticas.

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Ale-Spy
Novato
Novato


Registrado: Quinta-Feira, 28 de Dezembro de 2006
Mensagens: 12

MensagemEnviada: Sex Fev 23, 2007 9:04 am    Assunto: Sql em formulas matemáticas. Responder com Citação

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(). Sad Question Question Question Question


Fico grato desade já.
No aguardo.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
LFer
Novato
Novato


Registrado: Quinta-Feira, 15 de Fevereiro de 2007
Mensagens: 3

MensagemEnviada: Sex Fev 23, 2007 12:38 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Ale-Spy
Novato
Novato


Registrado: Quinta-Feira, 28 de Dezembro de 2006
Mensagens: 12

MensagemEnviada: Sex Fev 23, 2007 2:01 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
LFer
Novato
Novato


Registrado: Quinta-Feira, 15 de Fevereiro de 2007
Mensagens: 3

MensagemEnviada: Sex Fev 23, 2007 4:35 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB