Ir para conteúdo

Arquivado

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

LUSAMA

[Resolvido] Calculo de solicitações a vencer/vencidas

Recommended Posts

Prezados bom dia. Estou com um problema em um relatorio que me foi pedido.

O mesmo se trata de todas as solicitações recebidas em um determinado periodo, o mesmo tem que me trazer:

- Quando as solicitações estiverem com uma data de pedido superior a 30 dias, imagem ampulheta (Este esta OK);

- Quando as solicitações estiverem com a data de entrega ja vencida, imagem relogiovermelho (Ok);

- Quando as solicitações estiverem com a data de entrega para vencer a 2 dias, imagem relogioP (Erro). Exatamente neste ponto esta ocorrendo o erro pois como verão abaixo existe uma solicitação vencida mas a mesma esta pegando a regra da imagem relogioP.

Abaixo segue select:

 

SELECT  cd_os
    , dt_pedido
    , dt_entrega
    , ds_ramal
    ,Decode(tp_classificacao,'C','Manutenção Corretiva'
                             ,'P','Nova Demanda'
                             ,'M','Duvida - Erro OP') classificacao 
    ,Decode(TP_PRIORIDADE , 'E', 'MEDIA'
                           , 'U', 'MUITO BAIXA'
                           , 'M', 'MUITO ALTA'
                           , 'A', 'ALTA'
                           , 'B', 'BAIXA')
,(CASE WHEN To_Char(dt_pedido,'dd/mm/yyyy') <=(SYSDATE  - 30) THEN '<img src="../bi/img/dash/ampulheta.gif" >' END) aberta30
,(CASE WHEN To_Char(dt_entrega,'dd/mm/yyyy')<> To_Char(SYSDATE,'DD/MM/YYYY') AND To_Char(dt_entrega,'dd/mm/yyyy') <(SYSDATE + 2) THEN '<img src="../bi/img/dash/relogioP.gif" >' 
      WHEN To_Char(dt_entrega,'dd/mm/yyyy')= To_Char(SYSDATE,'DD/MM/YYYY')  THEN '<img src="../bi/img/dash/relogiovermelho.gif" >' END) os_vencidas
,(CASE WHEN TP_PRIORIDADE = 'M' THEN '<img src="../bi/img/dash/bandeiravermelha.GIF" >'
      WHEN TP_PRIORIDADE = 'A' THEN '<img src="../bi/img/dash/bandeiralaranja.GIF" >' 
      WHEN TP_PRIORIDADE = 'E' THEN '<img src="../bi/img/dash/bandeiraamarela.GIF" >'
      WHEN TP_PRIORIDADE = 'B' THEN '<img src="../bi/img/dash/bandeiraverde.GIF" >'
      WHEN TP_PRIORIDADE = 'U' THEN '<img src="../bi/img/dash/bandeiraazul.GIF" >' END)prioridade
FROM dbamv.solicitacao_os a
  , dbasgu.usuarios b
WHERE a.cd_responsavel = b.cd_usuario
  AND a.tp_situacao IN ('A','S')
 AND b.nm_usuario LIKE 'GEOVANE%'
GROUP BY b.nm_usuario
    , cd_os
    , dt_pedido
    , ds_servico
    , dt_entrega
    , nm_solicitante
    , ds_ramal
,tp_classificacao
,TP_PRIORIDADE
ORDER BY DT_PEDIDO DESC

 

tela_oracle.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites
para vencer a 2 dias

 

basta fazer

 

sysdate+2

 

Tenha cuidado se o campo em questão guarda a data e hora pois talvez um TRUNC na comparação seja necessário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigada Mota,

 

Havia me esquecido que o campo traz a data e horario.

Com a dica que me deu o relatorio saiu certo.

Abaixo segue script com as mudanças:

 

SELECT  b.nm_usuario
    , cd_os
    , dt_pedido
    , ds_servico
    , dt_entrega
    , nm_solicitante
    , ds_ramal

     ,Decode(tp_classificacao,'C','Manutenção Corretiva'
                             ,'P','Nova Demanda'
                             ,'M','Duvida - Erro OP') classificacao 
     ,Decode(TP_PRIORIDADE , 'E', 'MEDIA'
                           , 'U', 'MUITO BAIXA'
                           , 'M', 'MUITO ALTA'
                           , 'A', 'ALTA'
                           , 'B', 'BAIXA')
,(CASE WHEN To_Char(dt_pedido,'dd/mm/yyyy') <=(SYSDATE  - 30) THEN '<img src="../bi/img/dash/ampulheta.gif" >' END) aberta30
,(CASE WHEN TRUNC(dt_entrega)<> To_Char(SYSDATE,'DD/MM/YYYY') AND To_Char(dt_entrega,'dd/mm/yyyy') = Trunc((SYSDATE +1))OR To_Char(dt_entrega,'dd/mm/yyyy') = Trunc((SYSDATE +2)) THEN '<img src="../bi/img/dash/relogioP.gif" >' 
      WHEN TRUNC(dt_entrega)<= To_Char(SYSDATE,'DD/MM/YYYY')   THEN '<img src="../bi/img/dash/relogiovermelho.gif" >'END) os_vencidas
,(CASE WHEN TP_PRIORIDADE = 'M' THEN '<img src="../bi/img/dash/bandeiravermelha.GIF" >'
      WHEN TP_PRIORIDADE = 'A' THEN '<img src="../bi/img/dash/bandeiralaranja.GIF" >' 
      WHEN TP_PRIORIDADE = 'E' THEN '<img src="../bi/img/dash/bandeiraamarela.GIF" >'
      WHEN TP_PRIORIDADE = 'B' THEN '<img src="../bi/img/dash/bandeiraverde.GIF" >'
      WHEN TP_PRIORIDADE = 'U' THEN '<img src="../bi/img/dash/bandeiraazul.GIF" >' END)prioridade


FROM dbamv.solicitacao_os a
  , dbasgu.usuarios b
WHERE a.cd_responsavel = b.cd_usuario
 --AND cd_os = 98190
 --AND To_Char(a.dt_pedido,'MM/YYYY') = '07/2011'
 --AND dt_execucao IS NULL 
 AND a.tp_situacao IN ('A','S')
 AND b.nm_usuario = #usuario#

GROUP BY b.nm_usuario
    , cd_os
    , dt_pedido
    , ds_servico
    , dt_entrega
    , nm_solicitante
    , ds_ramal
,tp_classificacao
,TP_PRIORIDADE
ORDER BY DT_PEDIDO DESC

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.