Jump to content


Photo

Select Retorno Da Soma Total Com MultiplicaÇÃo


  • Faça o login para participar
1 reply to this topic

#1 junior_menezes

junior_menezes

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 28/10/2007, 19:14

PRECISO DA AJUDA DE VOCÊS... :wacko:
IMAGINEM QUE EU TENHO UMA TABELA DE NOTA FISCAL, COM O NÚMERO DA NOTA, COM OS ITENS DE CADA NOTA, CÓDIGO DOS ITENS E VALORES DOS ITENS...
QUERO FAZER UM SELECT QUE ME RETORNE O VALOR TOTAL DE CADA NOTA... FAZENDO UMA SOMA DOS VALORES DOS ITENS... SÓ QUE QUANDO O CÓDIGO DO ÍTEM FOR UM NÚMERO ÍMPAR, O VALOR DESSE ÍTEM DEVE SER MULTIPLICADO POR 2...
EX.
NUM_NOTA = 1, NUM_ITEM = 1, VALOR_ITEM = 50... ENTÃO CONSIDERAR NA HORA DA SOMA O VALOR DO ITEM SENDO 2 * 50 = 100...
ALGUEM PODE ME AJUDAR?
:ph34r:

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 02/11/2007, 10:49

Bom, não tenho como testar no Oracle agora, testei no MySQL e foi possível fazer a condição no SUM():

mysql> select * from notas;
+------+------+--------+-------+
| nota | item | codigo | valor |
+------+------+--------+-------+
|	1 |	1 |	  1 |  2.00 | 
|	1 |	1 |	  2 |  2.40 | 
|	2 |	1 |	  3 |  4.00 | 
|	2 |	1 |	  3 | 40.00 | 
+------+------+--------+-------+
4 rows in set (0.00 sec)

mysql> select nota, sum(if(codigo % 2 = 0, valor, valor * 2)) from notas group by nota;
+------+-------------------------------------------+
| nota | sum(if(codigo % 2 = 0, valor, valor * 2)) |
+------+-------------------------------------------+
|	1 |									  6.40 | 
|	2 |									 88.00 | 
+------+-------------------------------------------+
2 rows in set (0.00 sec)

No Oracle você usaria DECODE() ao invés do IF, caso não saiba. http://www.techonthe...ions/decode.php

Edição feita por: Eclesiastes, 02/11/2007, 10:49.
Formatação

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq