Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите составить запрос


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо