Fórum Total vendas mes a mes por estado #367895

24/01/2009

0

Olá a todos, gostaria de uma ajuda para montar uma instrucao sql aonde quero demonstrar o total das vendas mes a mes de cada estado. Algo do tipo:

UF - JAN - FEV - MAR - ABR - MAI - JUN ...
SP 0,00 0,00 0,00 0,00 0,00 0,00
RJ 0,00 0,00 0,00 0,00 0,00 0,00
PR 0,00 0,00 0,00 0,00 0,00 0,00
MA 0,00 0,00 0,00 0,00 0,00 0,00

Utilizo Delphi 7 + Firebird

Tabelas utilizadas: CLIENTE, UF, VENDAS



Desde já agradeço.


Eremita

Eremita

Responder

Posts

26/01/2009

Webjoel

Olá!

Olha exatamente desta forma que você está querendo só é possível se não me engano no firebird 2.1.1 ou talvez até somente no 2.5.

mas isso você pode montar na sua própria aplicação, o select para tornar as informações terá que ser dessa forma:

select

extract(month from v.data_venda) as mes,
u.uf,
sum(v.vl_venda) as total_venda

from venda v

inner join cliente c on (c.cod_cliente = v.cod_cliente)
inner join uf u on (u.uf = c.uf)

group by 1,2



Responder

Gostei + 0

26/01/2009

Walter Faria

Bom dia, aproveitando este TOPICO, montei minha SQL da seguinte FORMA:

select extract(month from p.data) as mes, sum(i.Total) as total_venda
from Pedido p
inner join pedidoitem i on (i.codpedido = p.codpedido)
Where extract(Year from p.Data) = 2009
Group By p.data

MES TOTAL_VENDA
1 340,00
1 200,00

Todas as Vendas estao na DATA de janeiro, pq nao agrupou numa so linha
MES TOTAL_VENDA
1 540,00

Estou usando INTERBASE e D7 , Obrigado


Responder

Gostei + 0

26/01/2009

Joaoshi

Colega, o problema esta no [b:c7d08f23c3]Group By p.data[/b:c7d08f23c3] tente [b:c7d08f23c3]GROUP BY 1[/b:c7d08f23c3] (no Firebird é possível).

Espero ter ajudado.


Responder

Gostei + 0

26/01/2009

Webjoel

Olá!

Completando o que o amigo acima citou, segue abaixo a solução para seu caso, mas fica o select mais lento:

select extract(month from p.data) as mes, sum(i.Total) as total_venda
from Pedido p
inner join pedidoitem i on (i.codpedido = p.codpedido)
Where extract(Year from p.Data) = 2009
Group By extract(month from p.data)

ou

select extract(month from p.data) as mes, sum(i.Total) as total_venda
from Pedido p
inner join pedidoitem i on (i.codpedido = p.codpedido)
Where extract(Year from p.Data) = 2009
Group By 1



Responder

Gostei + 0

26/01/2009

Walter Faria

entao, nenhuma das duas opcoes funciona, fala que a coluna nao existe, como posso resolver isto.


Responder

Gostei + 0

27/01/2009

Webjoel

Olá!

Tente isso:

select

mes,
sum(total)

from (

select

extract(month from p.data) as mes,
i.Total as total

from Pedido p
inner join pedidoitem i on (i.codpedido = p.codpedido)
Where extract(Year from p.Data) = 2009)

group by mes



Responder

Gostei + 0

28/01/2009

Pestana_

Olá! Completando o que o amigo acima citou, segue abaixo a solução para seu caso, mas fica o select mais lento:
select extract(month from p.data) as mes, sum(i.Total) as total_venda
from Pedido p
inner join pedidoitem i on (i.codpedido = p.codpedido)
Where extract(Year from p.Data) = 2009
Group By extract(month from p.data)

ou

select extract(month from p.data) as mes, sum(i.Total) as total_venda
from Pedido p
inner join pedidoitem i on (i.codpedido = p.codpedido)
Where extract(Year from p.Data) = 2009
Group By 1


eremita, esta solução que o webjoel sugeriu não funcionou? poste a mensagem de erro.


Responder

Gostei + 0

28/01/2009

Eremita

Caros colegas, por necessitar de uma solução digamos rápida, tive que recorrer a outros recursos para ter a referida análise. Porém não descartei a oportunidade em ter a solução via select uma vez que atraves desta podemos ter base para muitas outras similares. Ainda não testei o código, mas acho que o mesmo ainda nao atende minha necessidade.


Responder

Gostei + 0

29/01/2009

Walter Faria

tento executar este SQL, mas da erro :
coluna Select nao existe. oq pode ser estou usando INTERBASE


Obrigado


****************

select mes, sum(total) from (select extract(month from p.data) as mes, i.Total as total from Pedido p
inner join pedidoitem i on (i.codpedido = p.codpedido)
Where extract(Year from p.Data) = 2009)
group by mes


Responder

Gostei + 0

02/02/2009

Walter Faria

eai , alguem pode me ajudar , ainda nao consegui resolver, como posso montar uma VIEWS para resolver esta questao ?


Obrigado


Responder

Gostei + 0

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

Aceitar