AGRUPAMENTO USANDO O REPORTING SERVICES E NÃO VIA QUERY
-
quarta-feira, 29 de fevereiro de 2012 14:51
Amigos, boa tarde!
Vejam a tabela abaixo:
HORA |PRODUTO | QTD
07:01 |BALA | 12
07:25 |BALA | 20
07:35 |PIRULITO | 20
08:15 |PIRULITO | 15
08:15 |PIRULITO | 15
Eu quero fazer o agrupamento pelo campo hora somando o campo QTD, porém quero fazer o agrupamento de hora em hora (quebrado por hora).
Eu sei fazer isto via query mas não quero. Pretendo fazer isto via Reporting Services. É possível? Como?
Para se ter uma noção melhor vou mostrar abaixo a query:
Via Query é uma beleza!!! mas não quero passar tantos parametros na minha query, prefiro passar tudo via Reporting Services.
CREATE TABLE #PRODUTOS (HORA DATETIME, PRODUTO VARCHAR(50), QTD MONEY)
INSERT INTO #PRODUTOS VALUES
('07:01','BALA','12'),
('07:25','BALA','20'),
('07:35','PIRULITO','20'),
('08:15','PIRULITO','15')
('08:15','PIRULITO','15')
SELECT * FROM #PRODUTOS
SELECT
CONVERT(VARCHAR(2),HORA,108)+':00:00',
PRODUTO,
SUM(QTD)
FROM #PRODUTOS
GROUP BY CONVERT(VARCHAR(2),HORA,108), PRODUTOObrigado!
Todas as Respostas
-
quarta-feira, 29 de fevereiro de 2012 17:56
Boa tarde Francisco,
Resumindo, o que você deseja é que o relatório seja gerado da seguinte forma:
HORA |Produto |QTD
07:00-08:00 |BALA |32
07:00-08:00 |PIRULITO |20
08:00-09:00 |PIRULITO |30
Na opção Rows Group, você pode criar funções para fazer o teste de hora em hora e assim realizar o agrupamento.
Para isso você utilizará em Common Functions > Date & Time, a função Minute, que retorna em inteiro os minutos da hora. Ou seja, a hora cadastrada é 08:15, então irá mostrar apenas 15 minutos. Dessa forma você subtrai os minutos do menor valor de hora e soma 1 hora.
Vai ficar mais ou menos assim:
=FormatDateTime(Hour(Min(Fields!Hora.value) - Minutes(Min(Fields!Hora.value))+1,DateFormat.LongTime)
Eu não tenho como testar aqui, se fosse em gráfico ficaria mais fácil de agrupar de hora em hora.
Rodrigo Ataíde.
- Sugerido como Resposta Boreki quarta-feira, 29 de fevereiro de 2012 22:03
-
quarta-feira, 29 de fevereiro de 2012 18:35
Ficou show de bola!
Já vi que o negócio do Reporting Services está nas expressões regulares... vou ter que estudar bem esse carinha... fujo dele desde o flash!
Valeu!
-
quarta-feira, 29 de fevereiro de 2012 18:45
As expressões regulares vieram para facilitar facilitar quem não tem conhecimento em query sql ou em code vb.
O dificil é compreender cada função dessa. Mas vem explicado do lado direito da janela.
Rodrigo Ataíde.

