Total vendas mes a mes por estado
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.
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
Curtidas 0
Respostas
Webjoel
24/01/2009
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:
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
GOSTEI 0
Walter Faria
24/01/2009
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
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
GOSTEI 0
Joaoshi
24/01/2009
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.
Espero ter ajudado.
GOSTEI 0
Webjoel
24/01/2009
Olá!
Completando o que o amigo acima citou, segue abaixo a solução para seu caso, mas fica o select mais lento:
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
GOSTEI 0
Walter Faria
24/01/2009
entao, nenhuma das duas opcoes funciona, fala que a coluna nao existe, como posso resolver isto.
GOSTEI 0
Webjoel
24/01/2009
Olá!
Tente isso:
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
GOSTEI 0
Pestana_
24/01/2009
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.
GOSTEI 0
Eremita
24/01/2009
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.
GOSTEI 0
Walter Faria
24/01/2009
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
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
GOSTEI 0
Walter Faria
24/01/2009
eai , alguem pode me ajudar , ainda nao consegui resolver, como posso montar uma VIEWS para resolver esta questao ?
Obrigado
Obrigado
GOSTEI 0