Fórum WHERE PERDIDO - Oracle #533353

02/10/2015

0

Bom dia gente, tudo bem?

Fiz uma Querie que completa uma sequencia de datas, e mostra onde está faltando tal dia..
Está funcionando tudo certo, porém, eu não consigo utilizar o WHERE, se eu incluir ele na querie, ela não funciona mais, ignora tudo que eu fiz..
Alguém pode me dizer onde eu posso colocar meu WHERE ou se da pra usar um outro select especifico.
Agora que eu consegui pegar as datas quebradas, eu quero poder selecionar a partir de qual data desejo que seja feita a consulta.


SEM WHERE

with seq as (
select level l
from dual connect by level <= ( SELECT MAX(TO_NUMBER(TO_CHAR(START_DATE,'DD'))) FROM DIASUSADOS)
)
select l, TO_CHAR(START_DATE,'DD-MM-YYYY') as data,
decode(START_DATE, null, l ) FURO_DATA
from seq left outer join DIASUSADOS on ( l = TO_NUMBER(TO_CHAR(START_DATE,'DD')) )
GROUP BY DIASUSADOS.START_DATE, l
order by 1, DIASUSADOS.START_DATE;

Resultado:

[img:descricao=Sem where]http://arquivo.devmedia.com.br/forum/imagem/456667-20151002-104410.jpg[/img]

Se eu tirar o where do comentário, minha querie perde a função principal.

COM WHERE:
with seq as (
select level l
from dual connect by level <= ( SELECT MAX(TO_NUMBER(TO_CHAR(START_DATE,'DD'))) FROM DIASUSADOS)
)
select l, TO_CHAR(START_DATE,'DD-MM-YYYY') as data,
decode(START_DATE, null, l ) FURO_DATA
from seq left outer join DIASUSADOS on ( l = TO_NUMBER(TO_CHAR(START_DATE,'DD')) )
WHERE START_DATE >= TO_DATE('15-09-2015', 'DD-MM-YYYY HH24:Mi')
GROUP BY DIASUSADOS.START_DATE, l
order by 1, DIASUSADOS.START_DATE;

resultado:

[img:descricao=COM WHERE]http://arquivo.devmedia.com.br/forum/imagem/456667-20151002-104335.jpg[/img]
Dayane

Dayane

Responder

Post mais votado

02/10/2015

Boas Dayane ^^,
tente colocar um where aqui :

with seq as (
select level l
from dual connect by level <= ( SELECT MAX(TO_NUMBER(TO_CHAR(START_DATE,'DD'))) FROM DIASUSADOS WHERE START_DATE >= TO_DATE('15-09-2015', 'DD-MM-YYYY HH24:Mi'))
)


se ão funcionar tente colocar um sql por fora exemplo:
select * 
from (select l, TO_CHAR(START_DATE,'DD-MM-YYYY') as data, 
decode(START_DATE, null, l ) FURO_DATA
from seq left outer join DIASUSADOS on ( l = TO_NUMBER(TO_CHAR(START_DATE,'DD')) )
GROUP BY DIASUSADOS.START_DATE, l
order by 1, DIASUSADOS.START_DATE)
where START_DATE >= TO_DATE('15-09-2015', 'DD-MM-YYYY HH24:Mi')


tente ai

Hector Figueroa

Hector Figueroa
Responder

Gostei + 1

Mais Posts

05/10/2015

Dayane

Obrigada Hector, coloquei do jeito que você mostrou, mas da erro na linha do WHERE.

ORA-00904: "START_DATE": identificador inválido
00904. 00000 - "%s: invalid identifier"
Responder

Gostei + 0

05/10/2015

Hector Figueroa

Oi Dayane, e porque esqueci que o campo ta assim "TO_CHAR(START_DATE,'DD-MM-YYYY') as data" ou seja, o campo modificado esta com o apelido de data agora ^^, segue abaixo a alteração, da um olho ae:


select * 
from (select l, TO_CHAR(START_DATE,'DD-MM-YYYY') as data, 
decode(START_DATE, null, l ) FURO_DATA
from seq left outer join DIASUSADOS on ( l = TO_NUMBER(TO_CHAR(START_DATE,'DD')) )
GROUP BY DIASUSADOS.START_DATE, l
order by 1, DIASUSADOS.START_DATE)
where data >= TO_DATE('15-09-2015', 'DD-MM-YYYY HH24:Mi')

Responder

Gostei + 1

05/10/2015

Dayane

Oi Hector, obrigada novamente, corrigi e inseri o "where DATA.." mas ele se perdeu, não mostrou os furos na tabela, pulou do 20 para 22 e não mostrous os furos, veja:

[img]http://arquivo.devmedia.com.br/forum/imagem/456667-20151005-104522.jpg[/img]
Responder

Gostei + 0

05/10/2015

Hector Figueroa

Me mostre a consulta completa que você esta fazendo
Responder

Gostei + 1

05/10/2015

Dayane

with seq as (
select level l
from dual connect by level <= ( SELECT MAX(TO_NUMBER(TO_CHAR(START_DATE,'DD'))) FROM DIASUSADOS)
)
select *
from (select l, TO_CHAR(START_DATE,'DD-MM-YYYY') as data,
decode(START_DATE, null, l ) FURO_DATA
from seq left outer join DIASUSADOS on ( l = TO_NUMBER(TO_CHAR(START_DATE,'DD')) )
GROUP BY DIASUSADOS.START_DATE, l
order by 1, DIASUSADOS.START_DATE)
where data >= TO_DATE('15-09-2015', 'DD-MM-YYYY HH24:Mi');
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar