Array
(
)

Dúvida Consulta SQL

Milvilela
   - 17 abr 2006

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

Reunix
   - 23 abr 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é?

It3r
   - 24 abr 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.