Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

Никак не могу составить SQL запрос, помогите пожалуйста.   Найти похожие ветки 

 
al11 ©   (2003-05-19 17:21) [0]

Есть две звязанные таблицы:
Человек (Поля: НомерЗаписи, ФИО),
Приказ (Поля: НомерЗаписи, ВидПриказа, ДатаПриказа, Дата, НомерЗаписиЧеловек),
Если ВидПриказа=1 то Приказ о приеме, а Дата-дата приема
Если Вид приказа=2 то Приказ об увольнении, а Дата - дата увольнения
Связаны таблицы по полям ( один Человек ко многим Приказам):
Человек.НомерЗаписи=Приказ.НомерЗаписиЧеловек

Нужно произвести такую выборку:
Подсчитать общее количество Человек (записей таблицы Человек) работающих на дату XX.XX.XXXX.
(т. е. принятых на работу (человек м.б. и несколько раз принят на работу) до указ срока и
не уволеных до него (так же несколько раз м. б. уволен) ).


 
Al11 ©   (2003-05-19 17:22) [1]



 
Al11 ©   (2003-05-19 17:55) [2]



 
Mike Kouzmine ©   (2003-05-19 17:57) [3]

Тебе надо связать эту таблицу по НомерЗаписиЧеловек саму с собой, и выбрать только те записи, где Дата в 1 больше, чкм дата в 2 (ВидПриказа)


 
Johnmen ©   (2003-05-19 18:15) [4]

Примерно так :

SELECT COUNT(*) FROM <Человеки> A
JOIN ON <Приказы> B ON B.<НомерЗаписиЧеловек>=A.<НомерЗаписи>
WHERE 1=(SELECT C.<вид приказа> FROM <Приказы> C
WHERE (A.<НомерЗаписи>=C.<НомерЗаписиЧеловек>) AND
(C.<ДатаПриказа>=(SELECT MAX(D.<ДатаПриказа>)
FROM <Приказы> D
WHERE D.<ДатаПриказа><="XX.XX.XXXX")))



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

Текущий архив: 2003.06.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
3-26387
bobr12
2003-05-21 13:37
2003.06.09
Как в DBGrid.Options в программе установить dgMultiSelect в True?


7-26823
Some1
2003-03-30 08:38
2003.06.09
Идентификация дискетки


14-26787
Карлсон
2003-05-23 20:33
2003.06.09
что с монитором?


3-26352
AlexGreg
2003-05-20 14:01
2003.06.09
Как заставить свою программу редактировать лист MS Excel?


3-26338
qwerty2
2003-05-20 11:50
2003.06.09
Странное поведение BDE