Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa dia,
Tenho um código que me trás a soma das ordens de serviços em seus respectivos meses na consulta. Porém gostaria que ele somasse também a evolução de cada mês, tipo: a consulta seria do mês de abril a junho, sendo que o mês de maio somaria com as O.S com o mês de abril e o resultado de junho seria a soma das do mês de abril + maio + junho e assim respectivamente. Ex: abril 2, maio 6 e junho 8 sendo que ficaria abril 2 maio 8 e junho 16. Segue o código de consulta. Desde já agradeço a ajuda e atenção.
select t.mes
,t.ano
,t.mes_ano
,t.ordens_geradas_abertas
,total_consulta.soma_total
from
(select datepart(mm, ordserv.datpro2) mes
, datepart(yy, ordserv.datpro2) ano
, engeman.mesabrev(ordserv.datpro2) + '/' + substring(cast(datepart(yy, ordserv.datpro2) as varchar),3,2) mes_ano
, count(case when ordserv.gerada='s' then 1 else 0 end) as ordens_geradas_abertas
from ordserv
INNER JOIN TIPMANUT ON TIPMANUT.CODTIPMAN=ORDSERV.CODTIPMAN AND TIPMANUT.CODEMP=ORDSERV.CODEMP_2
INNER JOIN SETEXE ON SETEXE.CODSET=ORDSERV.CODSET AND SETEXE.CODEMP=ORDSERV.CODEMP_4
INNER JOIN CENCUS ON ORDSERV.CODEMP_3=CENCUS.CODEMP AND ORDSERV.CODCEN=CENCUS.CODCEN
LEFT OUTER JOIN FILIAL ON FILIAL.CODFIL=ORDSERV.CODFIL AND FILIAL.CODEMP=ORDSERV.CODEMP_7
LEFT OUTER JOIN CLIENTE ON CLIENTE.CODCLI=ORDSERV.CODCLI
where ordserv.datpro2 between '01/04/2016' and '30/06/2016'
and ORDSERV.STATORD ='A'
and ordserv.codemp=77
and tipmanut.tag in ('corr','cham')
group by datepart(mm, ordserv.datpro2)
, engeman.mesabrev(ordserv.datpro2)
, datepart(yyyy, ordserv.datpro2)) t
outer apply
(select count(case when ordserv.gerada='s' then 1 else 0 end) as soma_total
from ordserv
INNER JOIN TIPMANUT ON TIPMANUT.CODTIPMAN=ORDSERV.CODTIPMAN AND TIPMANUT.CODEMP=ORDSERV.CODEMP_2
INNER JOIN SETEXE ON SETEXE.CODSET=ORDSERV.CODSET AND SETEXE.CODEMP=ORDSERV.CODEMP_4
INNER JOIN CENCUS ON ORDSERV.CODEMP_3=CENCUS.CODEMP AND ORDSERV.CODCEN=CENCUS.CODCEN
LEFT OUTER JOIN FILIAL ON FILIAL.CODFIL=ORDSERV.CODFIL AND FILIAL.CODEMP=ORDSERV.CODEMP_7
LEFT OUTER JOIN CLIENTE ON CLIENTE.CODCLI=ORDSERV.CODCLI
where ordserv.datpro2 between '01/04/2016' and '30/06/2016'
and ORDSERV.STATORD ='A'
and ordserv.codemp=77
and tipmanut.tag in ('corr','cham'))total_consulta
__________________________________________________________________________________________________
Resultado da Consulta:
mes ano mes_ano ordens_geradas_abertas soma_total
--- ---- ------- ---------------------- ----------
4 2016 abr/16 2 16
5 2016 mai/16 6 16
6 2016 jun/16 8 16
_________________________________________________________________________________________________________
Desejável:
mes ano mes_ano ordens_geradas_abertas soma_total
--- ---- ------- ---------------------- ----------
4 2016 abr/16 2 2
5 2016 mai/16 6 8
6 2016 jun/16 8 16
____________________________________________________________________________________________________________
Carregando comentários...