Fórum Relatório Mensal em Colunas #321448

16/05/2006

0

Oi pessoal, blz?

Estou com a seguinte dúvida me perseguindo a um tempo, sem resposta...

Como faço para criar um relatório, quebrando por mês, e colocando os dados de cada mês nas colunas correspondentes??
Exemplo:

-----------Jan----Fev----Mar----Abr----Mai----Jun
Cliente1---03------15-----11------07------09-----16
Cliente2---15------15-----16------25------13-----10
Cliente3---10------15-----11------20------16-----14
Cliente4---16------15-----17------14------13-----19

Não tenho a mínima idéia de como fazer isto...
No momento uso Quick Report, mas caso haja necessidade, posso usar outro gerador de relatórios, caso ajude.

Agradeço antecipadamente a atenção.
Abraços!
Fernando


Robotpost

Robotpost

Responder

Posts

16/05/2006

Emerson Nascimento

o gerador de relatórios não é o problema maior.
qual o banco de dados que você usa?


Responder

Gostei + 0

16/05/2006

Robotpost

Oi Emerson.

Antes de mais nada obrigado por se prontificar a me ajudar.

Estou usando SQL Server 2000.

Abraço,

Fernando


Responder

Gostei + 0

16/05/2006

Emerson Nascimento

pode ser numa instrução direta ou via stored procedure.

um exemplo:
select
  cliente,
  sum(case
      when month(data)=01
      then fretetotal
      else 0 end) Jan,
  sum(case
      when month(data)=02
      then fretetotal
      else 0 end) Fev,
  sum(case
      when month(data)=03
      then fretetotal
      else 0 end) Mar,
  sum(case
      when month(data)=04
      then fretetotal
      else 0 end) Abr,
  sum(case
      when month(data)=05
      then fretetotal
      else 0 end) Mai,
  sum(case
      when month(data)=06
      then fretetotal
      else 0 end) Jun
from
  pedidos
where
  year(data) = 2005
group by
  cliente



Responder

Gostei + 0

16/05/2006

Robotpost

Emerson,

Tenho que dar os parabéns, pois ficou exatamente como eu queria.

Só mais uma dúvida.

Tenho como eu trazer os dados, separado por categoria e cliente?
Exemplo:

-----------Jan----Fev----Mar----Abr----Mai----Jun
Gastos com Impressão
Cliente1---03------15-----11------07------09-----16
Cliente2---15------15-----16------25------13-----10
Cliente3---10------15-----11------20------16-----14
Cliente4---16------15-----17------14------13-----19
Gastos com Transporte
Cliente1---03------15-----11------07------09-----16
Cliente2---15------15-----16------25------13-----10
Cliente3---10------15-----11------20------16-----14
Cliente4---16------15-----17------14------13-----19
Gastos com Alimentação
Cliente1---03------15-----11------07------09-----16
Cliente2---15------15-----16------25------13-----10
Cliente3---10------15-----11------20------16-----14
Cliente4---16------15-----17------14------13-----19
Gastos com Hospedagem
Cliente1---03------15-----11------07------09-----16
Cliente2---15------15-----16------25------13-----10
Cliente3---10------15-----11------20------16-----14
Cliente4---16------15-----17------14------13-----19

Fui copiando os dados, mas é mais ou menos isto que preciso.

Obrigado mais uma vez, foi uma dica muito valiosa a sua.

Abraço,

Fernando


Responder

Gostei + 0

16/05/2006

Emerson Nascimento

select 
  categoria,
  cliente,
  sum(case
      when month(data)=01
      then fretetotal
      else 0 end) Jan,
  sum(case
      when month(data)=02
      then fretetotal
      else 0 end) Fev,
  sum(case
      when month(data)=03
      then fretetotal
      else 0 end) Mar,
  sum(case
      when month(data)=04
      then fretetotal
      else 0 end) Abr,
  sum(case
      when month(data)=05
      then fretetotal
      else 0 end) Mai,
  sum(case
      when month(data)=06
      then fretetotal
      else 0 end) Jun
from
  pedidos
where
  year(data) = 2005
group by
  categoria,
  cliente
order by
  categoria,
  cliente
com esses dados, basta você montar o relatório


Responder

Gostei + 0

16/05/2006

Robotpost

Muito bom, ficou perfeito.

Obrigado Emerson.

Abraço,

Fernando


Responder

Gostei + 0

16/05/2006

Robotpost

Oi pessoal,

Bom, mostrei o relatório para o cliente, que ficou satisfeito, mas me jogou a seguinte questão?

Tem como os meses serem dinâmicos?
Ou seja:
Ele quer poder escolher os meses e anos que quer no relatório, e não que o relatório seja estático.
Exemplo: Um relatório de 01/04/2001 a 01/04/2002.
Neste caso, o relatório que o Emerson me indicou(que por sinal ficou perfeito), não serviria mais, porque o cliente não conseguiria alimentá-lo, de forma que ele traga as colunas de Abril/2001 a Abril/2002, ou Setembro/2003 a Maio/2004, deu pra entender?

É isso, espero que consigam me ajudar.

Agradeço novamente a atenção.

Abraços!
Fernando


Responder

Gostei + 0

17/05/2006

Emerson Nascimento

nesse caso seria necessário criar uma stored procedure.


Responder

Gostei + 0

17/05/2006

Robotpost

Emerson,

Vc tem algum modelo de Stored Procedure que faça isso?
Por mais que eu pense, não consegui criar algo que faça isso dinamicamente...

Abraços e obrigado.

Fernando


Responder

Gostei + 0

17/05/2006

Emerson Nascimento

e isso seria listado sempre em colunas?

por exemplo:
01/04/2001 a 01/04/2002

sairia:
cliente 01/2001 02/2001 03/2001 [...] 11/2001 12/2001 01/2002 02/2002 03/2002 04/2002

ou:
cliente 01/2001 02/2001 03/2001 [...] 11/2001 12/2001

cliente 01/2002 02/2002 03/2002 04/2002
(ou seja, agrupado por ano)

?


Responder

Gostei + 0

17/05/2006

Robotpost

Emerson, seria desta forma:

----------01/2001 02/2001 03/2001 [...] 11/2001 12/2001 01/2002 02/2002
Cliente1
Cliente2
Cliente3
Cliente4

Ou agrupado por categoria também, daquela forma que vc me explicou lembra?

Espero ter sido claro.
Abraço,
Fernando


Responder

Gostei + 0

18/05/2006

Robotpost

sobe


Responder

Gostei + 0

22/05/2006

Robotpost

sobe


Responder

Gostei + 0

23/05/2006

Robotpost

sobe de novo!!!!!!!!!!!


Responder

Gostei + 0

25/05/2006

Robotpost

outra vez.....


Responder

Gostei + 0

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

Aceitar