![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите составить запрос. [D7, dBase, FoxPro]
ambhtr © (2007-06-05 16:21:00)Есть две таблицы:
одна - список отделений фирмы (OPS.dbf),
другая - список с корреспоненцией от этих отделений за какой-то период (за май NovMay07.dbf)
В обоих таблицах есть поле - код отделения (OPS_Kod).
Нужно составить запрос, который бы выбирал в таблице отделений фирмы, те из них, которых нет в таблице корреспонденции, т.е. тех, кто не успел прислать свои файлы.
Попробовал такой запрос:
select O.OPS_Kod, O.OPS_NAME
from OPS O, NovMay07 N
where O.OPS_Kod <> N.OPS_Kod
получается, что растет временных SQL файл, а затем программа просто "выпадает".
Sergey13 (2007-06-06 08:28:00) [1]Вариант 3
select O.OPS_Kod, O.OPS_NAME
from OPS O
where NOT EXISTS ( SELECT 1 FROM NovMay07 N Where O.OPS_Kod = N.OPS_Kod)
ambhtr (2007-06-05 17:40:00) [2]Всем спасибо!
Остановился на варианте:
select O.OPS_Kod, O.OPS_NAME
from OPS O
where O.OPS_Kod not in (select distinct N.OPS_Kod from NovMay07 N)
Desdechado (2007-06-05 16:30:00) [3]Вариант 1
select O.OPS_Kod, O.OPS_NAME
from OPS O
where O.OPS_Kod NOT IN( SELECT N.OPS_Kod FROM NovMay07 N )
Вариант 2
select DISTINCT O.OPS_Kod, O.OPS_NAME
from OPS O LEFT OUTER JOIN NovMay07 N ON O.OPS_Kod = N.OPS_Kod
WHERE N.OPS_Kod IS NULL
Val (2007-06-05 16:29:00) [4]select O.OPS_Kod, O.OPS_NAME
from OPS O
where O.OPS_Kod not in (select distinct N.OPS_Kod from NovMay07 N)
или через exists, что больше нравится.