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.
Подскажите пожалуйста, что именно не верно в запросе, или как лучше сделать чтобы верно стало?
|
|
2
GANR
25.09.13
✎
09:31
|
(0) Ошибка как нельзя банальнее - условие в секции ГДЕ на правую таблицу при ЛЕВОЕ СОЕДИНЕНИЕ превращает это левое соединение во ВНУТРЕННЕЕ СОЕДИНЕНИЕ, обрезая случаи, когда в правой таблице нет записи, соответствующей условию соединения.
|
|