LUSAMA 0 Denunciar post Postado Novembro 30, 2012 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 Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Novembro 30, 2012 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
LUSAMA 0 Denunciar post Postado Dezembro 4, 2012 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