Вниз
Скачать: 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.022 c
2-1190130186
Евгений Р.
2007-09-18 19:43
2007.10.14
Заштриховать область


6-1161083178
ycuk
2006-10-17 15:06
2007.10.14
POST HTTP/1.1 302 Found


2-1189928872
DimDim
2007-09-16 11:47
2007.10.14
Лишняя запятая в запросе


2-1189751911
nick2000
2007-09-14 10:38
2007.10.14
не работает запрос через Clientdataset


2-1190259799
Mery
2007-09-20 07:43
2007.10.14
Ehlib для EhlibIBX




   Наверх