GARANTIR DESCONTO

Fórum Mostrar o total da venda de mes a mes. #50393

08/04/2005

0

Olá

Tenho que fazer uma consulta meio complicada.
Usando 3 tabelas (NFiscal, itens da NFiscal e Produtos), tenho que somar o total vendido de cada produto, dentro de um período, mas separado por mes. Seria assim: NFiscal emitidas de ´01/01/05´ a ´31/03/05´.

PRODUTO......01/05........02/05..........03/05........[b:eda3f1e0e7]TOTAL GERAL[/b:eda3f1e0e7]
PREGO......2.105,00....1.095,00.....1.015,00.........[b:eda3f1e0e7]4.215,00[/b:eda3f1e0e7]
LIXA.........3.085,00....2.015,00......4.550,00.........[b:eda3f1e0e7]9.650,00[/b:eda3f1e0e7]
COLA........2.150,00....1.350,00.....3.500,00..........[b:eda3f1e0e7]7.000,00[/b:eda3f1e0e7]
Estou fazendo assim:
Select sum(ITENS.qtde) Qtdade, sum(ITENS.valor) Total, PROD.descricao, PROD.codigo from ITENS, PROD
inner join NFiscal A on A.NUMNF=ITENS.NUMNF and A.DATA between :Dataini and :Datafim
where ITENS.codigo=PROD.codigo
Group by PROD.descricao, PROD.codigo
Order by PROD.codigo

Do jeito que fiz acima, mostra o total do período ´01/01/05´ a ´31/03/05´. E preciso que mostre separado de mes a mes, como exemplifiquei acima. :?
Uso firebird 1.5 e IBX.
Alguém pode me dar alguma dica?


Ivonei

Ivonei

Responder

Posts

08/04/2005

Fsflorencio

Olá Ivonei,
você pode fazer assim:

[b:f25b7abe17]Select PROD.descricao, PROD.codigo,
(select sum(ITENS.qtde)
from ITENS inner join NFiscal A on A.NUMNF = ITENS.NUMNF
where EXTRACT( YEAR FROM A.DATA ) = 2005 AND EXTRACT( MONTH FROM A.DATA ) = 1 AND
ITENS.CODIGO = PROD.CODIGO ) qtdade_1_05,
(select sum(ITENS.qtde * ITENS.valor)
from ITENS inner join NFiscal A on A.NUMNF = ITENS.NUMNF
where EXTRACT( YEAR FROM A.DATA ) = 2005 AND EXTRACT( MONTH FROM A.DATA ) = 1 AND
ITENS.CODIGO = PROD.CODIGO ) total_1_05,

...

(select sum(ITENS.qtde)
from ITENS inner join NFiscal A on A.NUMNF = ITENS.NUMNF
where EXTRACT( YEAR FROM A.DATA ) = 2005 AND EXTRACT( MONTH FROM A.DATA ) = 12 AND
ITENS.CODIGO = PROD.CODIGO ) qtdade_12_05,
(select sum(ITENS.qtde * ITENS.valor)
from ITENS inner join NFiscal A on A.NUMNF = ITENS.NUMNF
where EXTRACT( YEAR FROM A.DATA ) = 2005 AND EXTRACT( MONTH FROM A.DATA ) = 12 AND
ITENS.CODIGO = PROD.CODIGO ) total_12_05

from PROD
Order by PROD.codigo[/b:f25b7abe17]

Este script serve para o mês de janeiro a dezembro, sendo que omiti os meses de fevereiro a novembro. O script deve ser gerado para cada período.
Até.


Responder

Gostei + 0

08/04/2005

Ivonei

Muito Obrigado fsflorencio.
Exatamente como eu precisava. :)

PS. Gostei da formula. Bem bolada. 8)


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar