Как грамотно построить запрос

1. ELAM 38 02.01.14 19:57 Сейчас в теме
Появилась такая задача:
есть таблица значений, в ней есть три колонки: сотрудник, дата приема и дата увольнения. Также есть сотрудник и дата (ДатаХ), которые меняются с каждой итерацией цикла. При каждом изменении сотрудника и ДатаХ, код должен делать следующее:
1.Из таблицы значений отбираются все строки с нашим сотрудником и проверяется, чтобы хоть в одной строке дата увольнения была пустой;
2.ДатаХ сравнивается с минимальной (самой ранней) датой приема, и если даты оказываются равны, то происходит одна последовательность действий, если нет, то другая.
Пока получилось наваять следующее:
		 Запрос = Новый Запрос;
		 Запрос.УстановитьПараметр("ТЗ",ТаблицаЗначений);
		 Запрос.УстановитьПараметр("Сотрудник",[Сотрудник из цикла]);
		 Запрос.Текст = 
		  "ВЫБРАТЬ
		 |    ТЗ.Сотрудник,
		 |    ТЗ.ДатаПриема,
		 |    ТЗ.ДатаУвольнения
		 |ПОМЕСТИТЬ ВремТаблица
		 |ИЗ
		 |    &ТЗ КАК ТЗ
		 |ГДЕ
		 |	ТЗ.Сотрудник = &Сотрудник
		 |;
		 |
		 | X 
		 |ВЫБРАТЬ
		 |    ВремТаблица.Сотрудник,
		 |    ВремТаблица.ДатаПриема,
		 |    ВремТаблица.ДатаУвольнения
		 |ИЗ
		 |    ВремТаблица КАК ВремТаблица";
		 
		 ВыборкаИзТаблицыЗначений = Запрос.Выполнить().Выбрать();
		 Пока ВыборкаИзТаблицыЗначений.Следующий() Цикл
			 Если ВыборкаИзТаблицыЗначений.ДатаУвольнения = '00010101' Тогда
		              ....
		         КонецЕсли; 
Показать

Остается вопрос как вычислить самую раннюю дату из колонки "ДатаПриема" и как ее сравнить с ДатаХ?
Помогите, мудрые программеры ))))
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. gradi 5 02.01.14 20:13 Сейчас в теме
(1) ELAM, упорядочить дату приема по возрастанию. Тогда первая дата в выборке будет самая ранняя.
3. ELAM 38 02.01.14 20:20 Сейчас в теме
да, сейчас тоже до этого дошел, остается последняя проблема: как при обходе результата запроса сразу проверить:
1)сравнить ДатаХ с датой приема в первой строке;
2)узнать, есть ли в выборке хоть одна пустая дата увольнения.

Получается, цикл обхода результата запроса надо будет запускать 2 раза? За один раз никак не получится?
4. Anzati 03.01.14 09:08 Сейчас в теме
(3) ELAM, ты можешь проверять на пустую дату прямо в запросе, в итоге в результате запроса будет количество пустых записей и первая дата приёма
5. ELAM 38 03.01.14 10:02 Сейчас в теме
(4) Anzati, можешь подробнее подсказать по коду, как это сделать? )) через Запрос.УстановитьПараметр("Дата",'00010101'); не получится, так как нужно, чтобы в результат выводились все строки по сотруднику, а не только с пустой датой увольнения.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот