Вниз
Скачать: 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.016 c
3-1181115486
Strang
2007-06-06 11:38
2007.10.14
Размерность полей


2-1189951828
Serega99
2007-09-16 18:10
2007.10.14
sleep( )


2-1189756777
AllDer
2007-09-14 11:59
2007.10.14
таймаут сокета


3-1180945677
Oleg_teacher
2007-06-04 12:27
2007.10.14
Как извлечь рисунок jpeg


2-1189856345
Виктор007
2007-09-15 15:39
2007.10.14
Указатель на метод класса




   Наверх