Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ISREL LOUIS RAMOS

Trazer dados mensais

Recommended Posts


Fiz esse select para me trazer esses dados diariamente, agora penso em trazer esses mesmos dados em valores mensais.

Pensei em concatenar os dados da coluna dt_movimento MES/ANO, colocando group by deles para me trazer os valores.


Só que a minha idéia é que só traga o mês atual, ou seja mesmo em concatenando os valores de JAN a DEZ, só me interessa os valores do mês atual.


A opção de dar where e colocar a data beetween entre começo e fim do mês, não me agrada, pois a cada ano eu teria que mudar esse select.


Alguém poderia me ajudar com uma idéia e me ajusando a construir essa parte no select?


Obs: banco de dados oracle, usando plsql



Select SUM(FORNEC) AS CANA_FORNEC ,

SUM(CARGAS_FORNEC) AS CARGAS_FORNEC ,
SUM(PROPRIA) AS CANA_PROPRIA ,
SUM(CARGAS_PROPRIA) AS CARGAS_PROPRIA ,
MAX(dt_movimento) AS DT_MOVIMENTO


from


(
select
CASE WHEN TPP.CD_TP_PROPR = 4 THEN SUM(APT.QT_LIQUIDO) END AS FORNEC ,
CASE WHEN TPP.CD_TP_PROPR = 4 THEN COUNT(*) END AS CARGAS_FORNEC ,
CASE WHEN TPP.CD_TP_PROPR <> 4 THEN SUM(APT.QT_LIQUIDO) END AS PROPRIA ,
CASE WHEN TPP.CD_TP_PROPR <> 4 THEN COUNT(*) END AS CARGAS_PROPRIA ,
APT.dt_movimento
from PIMSPRD.APT_CARGAS APT, PIMSPRD.UPNIVEL3 UP3, PIMSPRD.TIPOPROPRI TPP
where APT.DT_MOVIMENTO = TO_DATE(Sysdate,'DD/MM/YYYY')
And UP3.CD_SAFRA = APT.CD_SAFRA
and UP3.CD_UPNIVEL1 = APT.CD_UPNIVEL1
and UP3.CD_UPNIVEL2 = APT.CD_UPNIVEL2
and UP3.CD_UPNIVEL3 = APT.CD_UPNIVEL3
and TPP.CD_TP_PROPR = APT.CD_TP_PROPR
and ((APT.CD_UNID_IND = 1))
group by TPP.CD_TP_PROPR, TPP.DA_TP_PROPR,APT.dt_movimento
)

Compartilhar este post


Link para o post
Compartilhar em outros sites

para filtrar o mesmo ano/mês

 where to_char(APT.DT_MOVIMENTO,'yyyymm') = TO_char(Sysdate,'yyyymm')

Podendo fazer por Group by

Compartilhar este post


Link para o post
Compartilhar em outros sites

para filtrar o mesmo ano/mês

 where to_char(APT.DT_MOVIMENTO,'yyyymm') = TO_char(Sysdate,'yyyymm')

Podendo fazer por Group by

 

Desculpa Motta,

 

mas eu não entendi muito bem como fazer, utilizo o concatenar?

e o meu campo dt_movimento é date.

 

Colocando a sua sugestão fiz da seguinte forma, mas os valores não coincidem:

 

Select SUM(FORNEC) AS CANA_FORNEC ,
SUM(CARGAS_FORNEC) AS CARGAS_FORNEC ,
SUM(PROPRIA) AS CANA_PROPRIA ,
SUM(CARGAS_PROPRIA) AS CARGAS_PROPRIA ,
MAX(dt_movimento) AS DT_MOVIMENTO
from
(
select
CASE WHEN TPP.CD_TP_PROPR = 4 THEN SUM(APT.QT_LIQUIDO) END AS FORNEC ,
CASE WHEN TPP.CD_TP_PROPR = 4 THEN COUNT(*) END AS CARGAS_FORNEC ,
CASE WHEN TPP.CD_TP_PROPR <> 4 THEN SUM(APT.QT_LIQUIDO) END AS PROPRIA ,
CASE WHEN TPP.CD_TP_PROPR <> 4 THEN COUNT(*) END AS CARGAS_PROPRIA ,
APT.dt_movimento
from PIMSPRD.APT_CARGAS APT, PIMSPRD.UPNIVEL3 UP3, PIMSPRD.TIPOPROPRI TPP
where to_char(APT.DT_MOVIMENTO,'mmyyyy') = TO_char(Sysdate,'mmyyyy')
And UP3.CD_SAFRA = APT.CD_SAFRA
and UP3.CD_UPNIVEL1 = APT.CD_UPNIVEL1
and UP3.CD_UPNIVEL2 = APT.CD_UPNIVEL2
and UP3.CD_UPNIVEL3 = APT.CD_UPNIVEL3
and TPP.CD_TP_PROPR = APT.CD_TP_PROPR
and ((APT.CD_UNID_IND = 1))
group by TPP.CD_TP_PROPR, TPP.DA_TP_PROPR,APT.dt_movimento
)

Compartilhar este post


Link para o post
Compartilhar em outros sites
Colocando a sua sugestão fiz da seguinte forma, mas os valores não coincidem:

 

 

o que deu de errado ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.