Usuário com melhor resposta
Média quando há dado

Pergunta
-
Boa tarde!
Estou precisando calcular a média de vários produtos porém a média só pode ser calculada pelos meses que tiveram vendas e não pelo total que seria 24
select
me.BARRA, me.DESCR_PROD, me.codprod, sum (me.QTD)/24 as media
from CAIXAGERAL me
where me.DATA BETWEEN CONVERT(datetime, '01/01/2012', 103) AND CONVERT(datetime, '31/12/2013', 103)
group by me.BARRA,me.DESCR_PROD, me.codprod- Editado Diegodcr quinta-feira, 5 de dezembro de 2013 17:54
Respostas
-
Deleted
- Sugerido como Resposta William John Adam Trindade quinta-feira, 5 de dezembro de 2013 19:07
- Marcado como Resposta Giovani Cr quinta-feira, 12 de dezembro de 2013 12:11
Todas as Respostas
-
Boa tarde,
Diego, experimente substituir a função Sum pela Avg:
me.BARRA, me.DESCR_PROD, me.codprod, avg(me.QTD) as media
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
-
Boa tarde,
Diego, experimente substituir a função Sum pela Avg:
me.BARRA, me.DESCR_PROD, me.codprod, avg(me.QTD) as media
Espero que ajude.
Assinatura: http://www.imoveisemexposicao.com.br
Não deu certo, na verdade nem sei que raio de média ele fez mas deu muito errado:
select
cx.BARRA, cx.DESCR_PROD,SUM(cx.qtd) as "QTD VEND",avg(cx.QTD) as MEDIA
from CAIXAGERAL CX
where cx.DATA BETWEEN CONVERT(datetime, '01/01/2012', 103) AND CONVERT(datetime, '31/12/2013', 103)
and cx.BARRA='7506195129876'
group by CX.BARRA,cx.DESCR_PRODBARRA DESCR_PROD QTD VEND MEDIA
7506195129876 [Promoção] ABS. ALWAYS PINK NO 10.000 1.000000
7506195129876 ABS. ALWAYS PINK NOTURNO C/AB 54.000 1.018867 -
Deleted
- Sugerido como Resposta William John Adam Trindade quinta-feira, 5 de dezembro de 2013 19:07
- Marcado como Resposta Giovani Cr quinta-feira, 12 de dezembro de 2013 12:11
-
Diego, verifique se o código abaixo retorna o que necessita.
-- período de emissão do relatório declare @DataInicial datetime, @DataFinal datetime; set @DataInicial = convert(date, '1/1/2012', 103); set @DataFinal = convert(date, '31/12/2013', 103); -- ajusta data final set @DataFinal = DateAdd(day, +1, @DataFinal); -- SELECT me.BARRA, me.DESCR_PROD, me.codprod,
(sum (me.QTD) / count(distinct convert(char(6), me.DATA, 112))) as media from CAIXAGERAL me where me.DATA >= @DataInicial and me.DATA < @DataFinal group by me.BARRA, me.DESCR_PROD, me.codprod;
José Diz Belo Horizonte, MG - Brasil
(Se encontrou a solução nesta resposta, ou se o conteúdo foi útil, lembre-se de marcá-la)