Имя: Пароль:
1C
1С v8
Ошибка в запросе
0 GreenDay1986
 
07.11.11
15:11
Запрос для камина
   
       |ФИО.Фамилия КАК Фамилия,
   |ФИО.Имя КАК Имя,
   |ФИО.Отчество КАК Отчество,
   |Кадр.Должность КАК Должность,
   |Кадр.Сотрудник.ДатаРождения КАК ДатаРождения,
   |Кадр.Сотрудник.Пол КАК Пол,
       |Кадр.Сотрудник.Документ.КемВыдан КАК КемВыдан,
   |Кадр.Сотрудник.Документ.ДатаВыдачи КАК ДатаВыдачи,
   |Кадр.Сотрудник.Документ.СерияДокумента КАК Серия,
   |Кадр.Сотрудник.Документ.НомерДокумента КАК Номер,
   |МАКСИМУМ(Кадр.Прием.ДатаПриема) КАК ДатаПриема,
   |МАКСИМУМ(Кадр.Увольнение.Дата) КАК ДатаУвольнения
   |ИЗ РегистрСведений.ФИОСотрудников КАК ФИО
   |ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадровыеСведения.СрезПоследних КАК Кадр
   |ПО ФИО.Сотрудник = Кадр.Сотрудник
   |ГДЕ (Кадр.Прием.Дата МЕЖДУ &ДатаНачалаПериода и &ТекущаяДата) И
   |ВЫБОР КОГДА ЕСТЬNULL(Кадр.Увольнение.Дата, 0) = 0
   |ТОГДА ИСТИНА                
       |ИНАЧЕ Кадр.Прием.Дата >   Кадр.Увольнение.Дата                        
   |КОНЕЦ    
   |СГРУППИРОВАТЬ ПО
   |ФИО.Фамилия,
   |ФИО.Имя,
   |ФИО.Отчество,
   |Кадр.Должность,
//    |Кадр.Сотрудник.МестоРождения,
   |ДАТА(Кадр.Сотрудник.ДатаРождения),
   |Кадр.Сотрудник.Пол,
   |Кадр.Сотрудник.Документ.КемВыдан,
   |Кадр.Сотрудник.Документ.ДатаВыдачи,
   |Кадр.Сотрудник.Документ.СерияДокумента,
   |Кадр.Сотрудник.Документ.НомерДокумента
   |Кадр.Прием.Дата,
   |Кадр.Увольнение.Дата
   |";

Дата приема и дата выдачи после группировки получаются неправильными, причем месяц и год выдаются корректно а даты везде 12 число. Заранее благодарен.
1 GreenDay1986
 
07.11.11
15:14
Может из-за группировок? Подскажите пожалуйста как сделать?
2 Fragster
 
гуру
07.11.11
15:24
конструктором принципиально не пользуетесь?
3 GreenDay1986
 
07.11.11
15:27
Ну да, по религиозным соображениям. Дату мне нужно брать последнюю, наверное и не надо ее группировать, вопрос как?
4 Fragster
 
гуру
07.11.11
15:27
потому как
   |МАКСИМУМ(Кадр.Прием.ДатаПриема) КАК ДатаПриема,
и
   |СГРУППИРОВАТЬ ПО
....
   |Кадр.Прием.Дата,

фигово сочетаются. да и вообще корявый запрос
5 GreenDay1986
 
07.11.11
15:30
Согласен что корявый, программирую недавно, подскажите плиз как сделать некоряво :)
6 Fragster
 
гуру
07.11.11
15:32
(5) Сначала поизучать SQL хоть чуть чуть.
Потом понять, что каждая точка - это неявное левое соединение, и что при этом происходит.
7 hhhh
 
07.11.11
15:33
(5) пользоваться конструктором как все. Когда освоишься, тогда уже ударяйся в свою религию, а пока надо программировать как все.
8 GreenDay1986
 
07.11.11
15:35
На чуть - чуть здесь и написано, думается внутренний запрос нужно создавать тогда даты группировать не придется. Есть подобные предложения или до этого никто чуть-чуть не дочитал? Может еще пути есть?
9 hhhh
 
07.11.11
15:46
(8) подожди, тут

  |Кадр.Сотрудник.Документ.НомерДокумента
   |Кадр.Прием.Дата,

запятой вообще нет. Этот запрос вообще не должен запуститься. Ты видимо и сюда запрос вручную набирал, копипаст тоже под религиозным запретом?
10 GreenDay1986
 
07.11.11
16:21
нет, закомменченную строчку удалил некорректно, в запросе все запускается . :)
11 Buster007
 
07.11.11
16:26
Кадр.Прием.Дата >   Кадр.Увольнение.Дата
уволить могут раньше, чем принять?
12 Fragster
 
гуру
07.11.11
16:37
(11) если несколько раз принимали и увольняли, а что?
13 Buster007
 
07.11.11
16:41
(12) может быть.. прост, наверное надо создавать новый элемент, когда вновь принимаешь сотрудника... ну в камине не в курсе как
14 GreenDay1986
 
07.11.11
16:43
Так в этом и сложность, народ увольняется и принимается по нескольку раз одни и те же, для того и группирую, все группируется, ток в датах 12 везде первое число, а месяц и год нормально выводятся. Как обойти чтот не знаю пока :(
15 GreenDay1986
 
08.11.11
09:11
Спасибо народ! Сделал! :)