Fala galera...
Preciso de uma ajuda.
Meu problema é o seguinte, tenho uma view que captura informações de algumas tabelas, nesta view tera um campo chamado classificação_dia
preciso capturar informações de uma outra tabela e caso essas informações estejam entre uma determinada data, o campo classificação_dia deverá ser atualizado "substituidos" com as informações capturadas.
exemplo:
DATA_ESCALA | CLASSIFICACAO_DIA
10/08/10 | FER
10/10/10 | TRA
11/10/10 | TRA
12/10/10 | TRA
Informação capturadas da outra tabela
DATA_INICIO | DATA_FIM | CLASSIFICAO_DIA
11/10/10 | 11/10/10 FER
A view deverá me retornar o seguinte valor atualizado:
DATA_ESCALA | CLASSIFICACAO_DIA
10/08/10 | FER
10/10/10 | TRA
11/10/10 | FER
12/10/10 | TRA
Se algume puder me ajudar, ficarei grato.
Abs.
Fernando.
VIEW - SUBSTITUIÇÃO DE VALORES
-
- Rank: Estagiário Júnior
- Mensagens: 1
- Registrado em: Seg, 28 Fev 2011 12:05 pm
- Localização: SP
FeCno
-
- Rank: DBA Sênior
- Mensagens: 389
- Registrado em: Ter, 27 Jul 2010 1:34 pm
- Localização: Sapiranga - RS
- Contato:
Quem falou que programar era fácil??
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Quanto mais dificil for a implementação mais valorizado seu trabalho será!
Acessem: www.gfkauer.com.br
Pelo que entendi faria algo assim:
Teste e diga o resultado.
Select nvl(to.col_data, tp.col_data) Data,
nvl(to.col_classifi, tp_col_classifi) clasific
From tabela_pricipal tp,
tabela_opcional To
Where to.col_data(+) = tp.col_data
- dr_gori
- Moderador
- Mensagens: 5018
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Acho que assim não dá, pois pode ser um PERIODO.
Veja: Se o cara informar: 10-jan até 20-jan pra ser FERIADO, tem que pegar todas datas entre esses dias.
Acho que o melhor é fazer um sub-select mesmo:
Daí basta fazer um NVL dos 2 campos que vem.
É claro, assim não pode ter 2 feriados no mesmo dia né.
Veja: Se o cara informar: 10-jan até 20-jan pra ser FERIADO, tem que pegar todas datas entre esses dias.
Acho que o melhor é fazer um sub-select mesmo:
select
A.data_escala
, A.classificacao_dia
, (select B.classificacao_dia from TABELA2 B where A.data_escala between B.data_inicio and B.data_fim)
from tabela A
É claro, assim não pode ter 2 feriados no mesmo dia né.
-
- Rank: DBA Pleno
- Mensagens: 232
- Registrado em: Qui, 26 Nov 2009 1:05 pm
- Localização: SP
Ricardo H. Tajiri
Também dá pra fazer com JOIN:
Os TRUNCs coloquei pra não dar o problema de desconsiderar alguns registros por causa das horas, mas pode matar alguns índices e acabar com o desempenho da consulta... Algumas providências podem ser tomadas pra resolver isso depois... 
select
A.data_escala
, B.classificacao_dia
from tabela1 A JOIN
tabela2 B
ON TRUNC(A.data_escala) between
TRUNC(B.data_inicio) and TRUNC(B.data_fim)

-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes