Вниз
Скачать: CL | DM;

Помогите составить запрос.   Найти похожие ветки 

 
ambhtr   (2007-06-05 16:21) [0]

Есть две таблицы:
одна - список отделений фирмы (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 файл, а затем программа просто "выпадает".


 
Val ©   (2007-06-05 16:29) [1]

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, что больше нравится.


 
Desdechado ©   (2007-06-05 16:30) [2]

Вариант 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


 
ambhtr   (2007-06-05 17:40) [3]

Всем спасибо!
Остановился на варианте:
select O.OPS_Kod, O.OPS_NAME
from OPS O
where O.OPS_Kod not in (select distinct N.OPS_Kod from NovMay07 N)


 
Sergey13 ©   (2007-06-06 08:28) [4]

Вариант 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)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.015 c
2-1188218496
Riply
2007-08-27 16:41
2007.10.14
Объявление "лишних" переменных в процедуре.


2-1190006417
bss
2007-09-17 09:20
2007.10.14
Как избавиться от мигания в гриде при переоткрытии запроса


1-1185553239
ins
2007-07-27 20:20
2007.10.14
TWebBrowser и правая кнопка мыши


15-1189682335
de.
2007-09-13 15:18
2007.10.14
С ++


15-1189615414
OSokin
2007-09-12 20:43
2007.10.14
С днем программиста!




   Наверх