|
Подскажите, как лучше реализовать такую задачку | ☑ | ||
---|---|---|---|---|
0
razbiralshik
25.09.13
✎
09:17
|
Нужно сделать запросом следующее.
ВЫБРАТЬ SCРеквизитыПользователейСрезПоследних.Пользователь КАК Пользователь, SCРеквизитыПользователейСрезПоследних.Проект КАК Проект, SCРеквизитыПользователейСрезПоследних.Подразделение КАК Подразделение, SCРеквизитыПользователейСрезПоследних.Регион КАК Регион, SCРеквизитыПользователейСрезПоследних.Должность КАК Должность, SCРеквизитыПользователейСрезПоследних.Период КАК НачПериода, ВЫБОР КОГДА SCРеквизитыПользователейСрезПоследних1.Период > SCРеквизитыПользователейСрезПоследних.Период ТОГДА ДОБАВИТЬКДАТЕ(SCРеквизитыПользователейСрезПоследних1.Период, СЕКУНДА, -1) ИНАЧЕ &КонПериода КОНЕЦ КАК КонПериода ИЗ РегистрСведений.SCРеквизитыПользователей.СрезПоследних КАК SCРеквизитыПользователейСрезПоследних ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.SCРеквизитыПользователей.СрезПоследних КАК SCРеквизитыПользователейСрезПоследних1 ПО SCРеквизитыПользователейСрезПоследних.Пользователь = SCРеквизитыПользователейСрезПоследних1.Пользователь ГДЕ SCРеквизитыПользователейСрезПоследних.Период МЕЖДУ &НачПериода И &КонПериода И SCРеквизитыПользователейСрезПоследних1.Период МЕЖДУ &НачПериода И &КонПериода И SCРеквизитыПользователейСрезПоследних.Пользователь = &Сотрудник И SCРеквизитыПользователейСрезПоследних1.Пользователь = &Сотрудник СГРУППИРОВАТЬ ПО SCРеквизитыПользователейСрезПоследних.Пользователь, SCРеквизитыПользователейСрезПоследних.Проект, SCРеквизитыПользователейСрезПоследних.Подразделение, SCРеквизитыПользователейСрезПоследних.Регион, SCРеквизитыПользователейСрезПоследних.Должность, SCРеквизитыПользователейСрезПоследних.Период, ВЫБОР КОГДА SCРеквизитыПользователейСрезПоследних1.Период > SCРеквизитыПользователейСрезПоследних.Период ТОГДА ДОБАВИТЬКДАТЕ(SCРеквизитыПользователейСрезПоследних1.Период, СЕКУНДА, -1) ИНАЧЕ &КонПериода КОНЕЦ Периодичность год. Может быть такой случай: П1 01.01.01. П2 01.01.01. Для него все отрабатывается нормально: П1 01.01.01. 31.12.01. П2 01.10.01. 31.12.01. А может быть еще и такой случай: П1 01.01.01. П2 01.10.01. Нужно получить такой вид: П1 01.01.01. 30.09.01. П2 01.10.01. 31.12.01. Но у мене почемуто получается такой вид: П1 01.01.01. 30.09.01. П2 01.10.01. 31.12.01. П1 01.01.01. 31.12.01. Подскажите пожалуйста, что именно не верно в запросе, или как лучше сделать чтобы верно стало? |
|||
1
razbiralshik
25.09.13
✎
09:25
|
А все разобрался, извините за внимание...
|
|||
2
GANR
25.09.13
✎
09:31
|
(0) Ошибка как нельзя банальнее - условие в секции ГДЕ на правую таблицу при ЛЕВОЕ СОЕДИНЕНИЕ превращает это левое соединение во ВНУТРЕННЕЕ СОЕДИНЕНИЕ, обрезая случаи, когда в правой таблице нет записи, соответствующей условию соединения.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |