![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите составить запрос
zrv © (2004-09-01 16:05:00)Есть две таблицы Oper и Spec. В Oper есть поле Rn в Spec поля Prn,Date,Sck. Нужен запрос который выдает все записи из Spec за дату с 01.06.2004 по 30.06.2004 и Sck=401 у которых не нашлось соответствия Prn из Spec - Rn из Oper (те значение Prn не нашлось ни разу в Rn таблицы Oper). База оракловая.
Zabludshiy (2004-09-01 16:41:00) [1]sorry,
SELECT * FROM OPERwhere DATE>='17-июн-2004' and DATE<='4-май-2004' and sck = 170 and id_col not in (select rn from oper)
Вроде того.
Ну, с форматом дат надеюсь сам расберешся TO_DATE?
Zabludshiy (2004-09-01 16:37:00) [2]
SELECT * FROM ызус where DATE>='17-ìàé-2004' and DATE
sniknik (2004-09-01 16:31:00) [3]нда... ;о)
"inner left" читать как "left join"
sniknik (2004-09-01 16:29:00) [4]select a.Prn,a.Date,a.Sck
from Spec a inner left Oper b on a.Prn=b.Pn
where (a.Date between :bdat and :edat) and (a.Sck=401) and (b.Rn is null)
должно сработать... в принципе (запрос без оракловской "специфики"), нужные даты загнать в параметры.
Sergey13 (2004-09-01 16:26:00) [5]Нечто вроде
select * from spec s
where date between '01.06.2004' and '30.06.2004' and Sck=401
and not exists (select * from oper o where o.rn=s.prn)
ЗЫ: Но поля лучше не называть Date,Index и т.п.
Роман Снегирев (2004-09-01 16:08:00) [6]тебе на www.sql.ru