Consulta SQL - Cacular valor
03/09/2004
0
Salve pessoal do forum
Estou com duvida em um consulta SQL e Firebird, é o seguinte:
Tenho uma tabela ( TB_PEDIDO_ITENS ) e nesta tabela tenho entre outros os seguintes campos:
COD_PEDIDO_LIGACAO
QTD_ITENS
VR_TOTAL_REVENDA
ENTRA_SAI
COD_FILIAL
Atualmente estou usando o seguinte comando SQL para colocar os valores em 2 Label´s
select
sum(QTD_ITENS) as ITENS,
sum(VR_TOTAL_REVENDA) as VR_ITENS
from TB_PEDIDO_ITENS
where (COD_FILIAL = :COD_FILIAL) and
(ENTRA_SAI = :ENTRA_SAI) and
(COD_PEDIDO_LIGACAO = :COD_PEDIDO_LIGACAO)
Funciona perfeitamente mas tem um problema neste sistema no momento em que o cliente esta fazendo uma compra ele tambem pode devolver mercadorias que não foram vendidas gerando assim uma diferença .... E onde é definido se o produto esta saindo ou entrando é o campo ( ENTRA_SAI ) que tem os seguintes valoes ´s´ -> SAIDA ou ´e´ -> ENTRADA .
Eu tenho que mostrar no label o VALOR TOTAL DO PEDIDO ja subtraindo o valor das mercadorias que estao entrando. Eu não tenho muito conhecimento em SQL .... Eu gostaria que ficasse mais ou menos assim no final:
select
sum(QTD_ITENS) as ITENS, {Aqui normal .. eu só tenho que mostrar a quantidade de peças que estam saindo => where ENTRA_SAI = ´s´}
sum(VR_TOTAL_REVENDA) as VR_ITENS {Aqui ja subtrai o valor das mercadorias que estao entrando. ENTRA_SAI = ´s´ - (menos) ENTRA_SAI = ´e´}
from TB_PEDIDO_ITENS
where (COD_FILIAL = :COD_FILIAL) and
(ENTRA_SAI = :ENTRA_SAI) and {E esta linha entao teria que ser removida}
(COD_PEDIDO_LIGACAO = :COD_PEDIDO_LIGACAO)
Espero que eu tenha conseguido expressar minha duvida ....
Se eu usar 2 IBQuery´s não é muito dificil de conseguir fazer o que eu estou querendo .... mas acho que vai ficar muito gambiarrado ... se for possível fazer usando apenas uma IBQuery gostaria que os colegas me ajudassem ...
Um abraço a todos
Marcelo MS
Estou com duvida em um consulta SQL e Firebird, é o seguinte:
Tenho uma tabela ( TB_PEDIDO_ITENS ) e nesta tabela tenho entre outros os seguintes campos:
COD_PEDIDO_LIGACAO
QTD_ITENS
VR_TOTAL_REVENDA
ENTRA_SAI
COD_FILIAL
Atualmente estou usando o seguinte comando SQL para colocar os valores em 2 Label´s
select
sum(QTD_ITENS) as ITENS,
sum(VR_TOTAL_REVENDA) as VR_ITENS
from TB_PEDIDO_ITENS
where (COD_FILIAL = :COD_FILIAL) and
(ENTRA_SAI = :ENTRA_SAI) and
(COD_PEDIDO_LIGACAO = :COD_PEDIDO_LIGACAO)
Funciona perfeitamente mas tem um problema neste sistema no momento em que o cliente esta fazendo uma compra ele tambem pode devolver mercadorias que não foram vendidas gerando assim uma diferença .... E onde é definido se o produto esta saindo ou entrando é o campo ( ENTRA_SAI ) que tem os seguintes valoes ´s´ -> SAIDA ou ´e´ -> ENTRADA .
Eu tenho que mostrar no label o VALOR TOTAL DO PEDIDO ja subtraindo o valor das mercadorias que estao entrando. Eu não tenho muito conhecimento em SQL .... Eu gostaria que ficasse mais ou menos assim no final:
select
sum(QTD_ITENS) as ITENS, {Aqui normal .. eu só tenho que mostrar a quantidade de peças que estam saindo => where ENTRA_SAI = ´s´}
sum(VR_TOTAL_REVENDA) as VR_ITENS {Aqui ja subtrai o valor das mercadorias que estao entrando. ENTRA_SAI = ´s´ - (menos) ENTRA_SAI = ´e´}
from TB_PEDIDO_ITENS
where (COD_FILIAL = :COD_FILIAL) and
(ENTRA_SAI = :ENTRA_SAI) and {E esta linha entao teria que ser removida}
(COD_PEDIDO_LIGACAO = :COD_PEDIDO_LIGACAO)
Espero que eu tenha conseguido expressar minha duvida ....
Se eu usar 2 IBQuery´s não é muito dificil de conseguir fazer o que eu estou querendo .... mas acho que vai ficar muito gambiarrado ... se for possível fazer usando apenas uma IBQuery gostaria que os colegas me ajudassem ...
Um abraço a todos
Marcelo MS
Mmoreira
Curtir tópico
+ 0
Responder
Posts
03/09/2004
Thomaz_prg
Bom, acho que ficaria mais ou menos assim:
Tente assim e veja se funciona...
SELECT (S.ITENS-E.ITENS) as ITENS_T, (S.VR_ITENS-E.VR_ITENS) as VR_ITENS_T FROM (select sum(QTD_ITENS) as ITENS, sum(VR_TOTAL_REVENDA) as VR_ITENS from TB_PEDIDO_ITENS where (COD_FILIAL = :COD_FILIAL) and (ENTRA_SAI = ´s´) and (COD_PEDIDO_LIGACAO = :COD_PEDIDO_LIGACAO) ) S, (select sum(QTD_ITENS) as ITENS, sum(VR_TOTAL_REVENDA) as VR_ITENS from TB_PEDIDO_ITENS where (COD_FILIAL = :COD_FILIAL) and (ENTRA_SAI = ´e´) and (COD_PEDIDO_LIGACAO = :COD_PEDIDO_LIGACAO) ) E
Tente assim e veja se funciona...
Responder
Clique aqui para fazer login e interagir na Comunidade :)