Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.09;
Скачать: [xml.tar.bz2];

Вниз

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

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

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

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


 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.007 c
1-26602
Dimedrol
2003-05-28 15:12
2003.06.09
Access violation ... in module rtl60.bpl


1-26523
Raduga
2003-05-27 13:31
2003.06.09
Как работает таймер


11-26420
Vitalon
2002-09-01 18:27
2003.06.09
Помогите разобраться с TKOLRichEdit


7-26798
Vlad Oshin
2003-04-02 14:02
2003.06.09
как узнать производителя сетевой?


1-26530
Navi
2003-05-25 08:50
2003.06.09
Восстановление зарегистрированного расширения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский