Desconsiderar Sabados e DOmingos
Awe galera.....
Seguinte, eu estou fazendo uma consulta assim:
Ela funciona blzinha.... só que eu preciso saber o que tem mais de 3 dias EM ROTA ou PARADO, mas ai surge um problema, finais de semana, nós não trabalhamos, então fica assim, se algo foi lançado dia 10/02 e ficou PARADO ou EM ROTA hj vai constar nessa minha consulta, e não é pra constar... eu qro ignorar sabados e domingos....
Vlw
Seguinte, eu estou fazendo uma consulta assim:
select enc.*, prod.nome produto, cli.codinome cliente, dep.nome dpto from encomendas enc left join produtos prod on (prod.id_produto = enc.id_produto) left join clientes cli on (cli.id_cliente = enc.id_cliente) left join departamentos dep on (dep.id_departamento = enc.id_departamento) where enc.situacao in (´PARADO´, ´EM ROTA´) and (enc.data+3) <= current_date and enc.tentativas <> ´0´;
Ela funciona blzinha.... só que eu preciso saber o que tem mais de 3 dias EM ROTA ou PARADO, mas ai surge um problema, finais de semana, nós não trabalhamos, então fica assim, se algo foi lançado dia 10/02 e ficou PARADO ou EM ROTA hj vai constar nessa minha consulta, e não é pra constar... eu qro ignorar sabados e domingos....
Vlw
Ramms
Curtidas 0
Respostas
Emerson Nascimento
13/02/2006
select enc.*, prod.nome produto, cli.codinome cliente, dep.nome dpto from encomendas enc left join produtos prod on (prod.id_produto = enc.id_produto) left join clientes cli on (cli.id_cliente = enc.id_cliente) left join departamentos dep on (dep.id_departamento = enc.id_departamento) where enc.situacao in (´PARADO´, ´EM ROTA´) and ((enc.data + 3) + (case when (extract(weekday from enc.data) + 3) > 6 then 2 else 0 end)) <= current_date and enc.tentativas <> ´0´
nessa instrução eu avalio se [i:59d94c6272]enc.data+3[/i:59d94c6272] é maior que sexta-feira (6) e, se for, incremento 2 à data para, assim, ignorar o fim de semana.
GOSTEI 0
Emerson Nascimento
13/02/2006
se você quiser desconsiderar a data de cadastro caso a mesma seja num fim de semana, tente assim:
select enc.*, prod.nome produto, cli.codinome cliente, dep.nome dpto from encomendas enc left join produtos prod on (prod.id_produto = enc.id_produto) left join clientes cli on (cli.id_cliente = enc.id_cliente) left join departamentos dep on (dep.id_departamento = enc.id_departamento) where enc.situacao in (´PARADO´, ´EM ROTA´) and (enc.data + (case when extract(weekday from enc.data) = 6 then 1 else 0 end) ) + (case when (extract(weekday from (enc.data + (case when extract(weekday from enc.data) = 6 then 1 else 0 end) ) ) + 3) > 5 then 5 else 3 end) <= current_date and (enc.tentativas <> ´0´)
GOSTEI 0