Dúvida Consulta SQL
Tenho no meu sistema a tabela OFOBJOFICINA onde são cadastrados todos os meus
objetos; lançados na coluna IDOBJOF.
Essa tabela se relaciona com a tabela OFHISTINDICADOR através do campo
IDOBJOF, apresentando os campos IDOBJOF (Chave estrangeira) e DATACOLETA.
Através do meu programa o usuário escolhe um IDOBJOF qualquer, e a partir
daí ele faz o lançamento da data; que é considerada sempre como a data do dia.
Nesse momento é preenchido o campo IDOBJOF e DATACOLETA; respectivamente com
o codigo do objeto e a data.
O que preciso é uma consulta na qual eu possa informar uma data de coleta
qualquer e ela me retornar quais os objetos NÃO estão lançados ( presentes na
tabela dentre os que possuo) com aquela data informada.
EX:Tenho 10 objetos cadastrados (001 a 010).
No dia 20.04 o usuário entrou e selecionou os objetos 003 e 005, com data de
coleta do dia (20.04).
Se fizer um select informando datacoleta=20.04 ela me retorna os objetos 003
e 005.Porém preciso que a consulta verifique todos os objetos que tenho
cadastrados de 001 a 010 e no exemplo me mostre os objetos
001,002,004,006,007,008,009,010.
Teria como fazer algo dessa forma?
Se alguém puder me dar uma força.
Obrigado pela atenção,
MicheL Vilela
objetos; lançados na coluna IDOBJOF.
Essa tabela se relaciona com a tabela OFHISTINDICADOR através do campo
IDOBJOF, apresentando os campos IDOBJOF (Chave estrangeira) e DATACOLETA.
Através do meu programa o usuário escolhe um IDOBJOF qualquer, e a partir
daí ele faz o lançamento da data; que é considerada sempre como a data do dia.
Nesse momento é preenchido o campo IDOBJOF e DATACOLETA; respectivamente com
o codigo do objeto e a data.
O que preciso é uma consulta na qual eu possa informar uma data de coleta
qualquer e ela me retornar quais os objetos NÃO estão lançados ( presentes na
tabela dentre os que possuo) com aquela data informada.
EX:Tenho 10 objetos cadastrados (001 a 010).
No dia 20.04 o usuário entrou e selecionou os objetos 003 e 005, com data de
coleta do dia (20.04).
Se fizer um select informando datacoleta=20.04 ela me retorna os objetos 003
e 005.Porém preciso que a consulta verifique todos os objetos que tenho
cadastrados de 001 a 010 e no exemplo me mostre os objetos
001,002,004,006,007,008,009,010.
Teria como fazer algo dessa forma?
Se alguém puder me dar uma força.
Obrigado pela atenção,
MicheL Vilela
Milvilela
Curtidas 0
Respostas
Reunix
17/04/2006
Se a consulta for com data única, tipo: Coleta:23/04/2006, tenta dessa forma:
where coleta <> :dDataColeta;
dDataColeta := Date(); assim o filtro trará os dados que nao tem esta data, se for isso q entendi, e se for com intervalo:
where COLETA < :dDataColeta and COLETA > :dDataColeta;
dDataColeta := Date();
dessa forma ela filtrará todos q estiverem fora do intervalo, ou seja q nao esteja nesse periodo de coleta, se nao for isso posta novamente..., valeu???
isso é só uma ideía o codigo vc deve seber né?
where coleta <> :dDataColeta;
dDataColeta := Date(); assim o filtro trará os dados que nao tem esta data, se for isso q entendi, e se for com intervalo:
where COLETA < :dDataColeta and COLETA > :dDataColeta;
dDataColeta := Date();
dessa forma ela filtrará todos q estiverem fora do intervalo, ou seja q nao esteja nesse periodo de coleta, se nao for isso posta novamente..., valeu???
isso é só uma ideía o codigo vc deve seber né?
GOSTEI 0
It3r
17/04/2006
Olá MilVilela..
Tente isso:
select * from dbo.tabela where dt_lancto not in (select data_lancto from
dbo.tabela where OFHISTINDICADOR.IDOBJOF = tabela.codigo and data_lancto =
convert(char, datalanc, 103)
Espero ter ajudado.
Abraços, Iter Vinicius.
Tente isso:
select * from dbo.tabela where dt_lancto not in (select data_lancto from
dbo.tabela where OFHISTINDICADOR.IDOBJOF = tabela.codigo and data_lancto =
convert(char, datalanc, 103)
Espero ter ajudado.
Abraços, Iter Vinicius.
GOSTEI 0