Fórum WHERE PERDIDO - Oracle #533353
02/10/2015
0
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
Curtir tópico
+ 0Post mais votado
02/10/2015
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
Gostei + 1
Mais Posts
05/10/2015
Dayane
ORA-00904: "START_DATE": identificador inválido
00904. 00000 - "%s: invalid identifier"
Gostei + 0
05/10/2015
Hector Figueroa
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')
Gostei + 1
05/10/2015
Dayane
[img]http://arquivo.devmedia.com.br/forum/imagem/456667-20151005-104522.jpg[/img]
Gostei + 0
05/10/2015
Hector Figueroa
Gostei + 1
05/10/2015
Dayane
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');
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)