Ir para conteúdo

POWERED BY:

Arquivado

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

Rafael Ribeiro RJ

Consulta não está filtrando

Recommended Posts

Tenho essa consulta no oracle:

 

("select 
           (
           select
           TO_CHAR (t2.hours) || ':' || TO_CHAR (t2.mins) total_time
           FROM (
           SELECT
           SUM (SUBSTR (t.horas, 1, INSTR (t.horas, ':') - 1)) + FLOOR (SUM (SUBSTR (t.horas, INSTR (t.horas, ':') + 1)) / 60) hours,
           MOD(SUM (SUBSTR (t.horas, INSTR (t.horas, ':') + 1)), 60) mins
           from activity_days t 
           inner join users u on u.id = t.user_id 
           inner join tb_semanas s on t.dia_id = s.id 
           inner join solicitations sol on sol.id = u.solicitation
           where t.horas is not null and t.horas <> '-' and sol.id = #{sol.to_i}
           ) t2 
           ) total_hora, 
           solicitations.description as Descricao, solicitations.hours_contracted, solicitations.number_order, act.description, users.name uname, to_char(count(distinct(ad.dia_id))) total_de_dias from solicitations 
                                             inner join users on users.solicitation = solicitations.id 
                                             inner join activity_days ad on ad.user_id = users.id 
                                             inner join tb_semanas s on ad.dia_id = s.id 
                                             inner join solicitations sol on sol.id = users.solicitation
                                             inner join activities act on act.id = ad.activity_id 
                                             where (IS_HIDDEN = 0 or IS_HIDDEN is null) and sol.id = #{sol.to_i}
                                             group by act.description, users.name, solicitations.number_order, solicitations.hours_contracted, solicitations.description")

 

Ela imprime um relatório de um timesheet com as horas trabalhadas no total e os dias trabalhados. Sendo que o relatório puxa todos os dias como trabalhados no total mesmo não tendo horas trabalhadas em todos os dias, a consulta funciona mas precisa ter esse filtro de puxar o total de dias certo excluindo os dias com '-' ou 0:00. Essa é a linha que puxa o total de dias: solicitations.description as Descricao, solicitations.hours_contracted, solicitations.number_order, act.description, users.name uname, to_char(count(distinct(ad.dia_id))) total_de_dias ... Alguém sabe como colocar esse filtro para o total de dias certo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente asim ...

 

select ...
where (IS_HIDDEN = 0 or IS_HIDDEN is null) and sol.id = #{sol.to_i}
and  to_char(count(distinct(ad.dia_id)))  in ('-','0:00') ...

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.