Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



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


14-26789
KA-87
2003-05-23 22:30
2003.06.09
Работа с майлером...


3-26332
ArtemB
2003-05-20 08:33
2003.06.09
Exclusiv


7-26810
JohnKorsh
2003-04-07 10:34
2003.06.09
Позиционирование Label.


7-26814
Юра
2003-04-02 03:16
2003.06.09
Сканер штрих-кода




   Наверх