#0
by misha122062
Есть запрос, он делает выборку, где есть параметры ДатаЗначения и Сотрудник и надо соеденить с регистром сведений РаботникиОрганизаций с целью получения должности на указанную дату. Что то не пойму как сделать. Или сделать выгрузку в ТЗ сотрудника и нужной даты, а потом в качестве параметра в отдельный запрос и потом соединять через временные таблицы. Проблема в том, что в выборке у каждого сотрудника куча дат для получения среза его должности на дату. Подскажите, кто знает, как это сделать. |ЛЕВОЕ СОЕДИНЕНИЕ
#3
by misha122062
Не очень понял - зачем 2 раза левое соединение - поясните смысл, плиз. И еще в приведенном примере запроса, как я понимаю, слово МАКСИМУМ можно не использовать - т.к. интересует на конкретную дату?
#4
by Defender aka LINN
На бумажке нарисуй себе таблички, и проследи, что сервер делает. Многое поймешь.
#5
by misha122062
Пробовал разобраться, соединения часто использую. Но здесь туплю. Поясни, не сложно?
#7
by 73
Срез последних - это не реальная таблица, а виртуальная. По сути вложенный запрос. В показано, как срез представить запросом по реальной таблице и при этом добавить то, что не реализовано в виртуальной.
#8
by misha122062
Не идет - пишет "Поле не входит в группу "РаботникиОрганизаций.Период" ЛЕВОЕ СОЕДИНЕНИЕ <<?>> РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций" К чему это, кто в курсе? Сделал как впримере.
#10
by misha122062
А что же в примере тогда (ВЫБРАТЬ ЗаказПокупателя.Ссылка КАК СсылкаДок, ЗаказПокупателя.Дата КАК ДатаДок, ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК Валюты ПО Валюты.Период <= ЗаказПокупателя.Дата И Валюты.Валюта = ЗаказПокупателя.ВалютаДокумента СГРУППИРОВАТЬ ПО ЗаказПокупателя.Ссылка ) КАК Таб1 Где неверно? Почему там нет группировки по ЗаказПокупателя.Дата, ЗаказПокупателя.ВалютаДокумента
#11
by misha122062
Переделал . Ошибка - таже. Не пойму зачем требует группировать по РаботникиОрганизаций.Период? Простое левое соединение
#12
by Defender aka LINN
потому что агрегатная функция есть. ВСЕ остальные поля должны быть в "СГРУППИРОВАТЬ ПО"
#13
by 73
* - это все поля, и Период в том числе. Т.е. в ты Период и в Максимум записал и в Сгруппировать, а надо либо туды, либо сюда.
#14
by 73
+ Еще к : Там нет группировок по Дата и (что-там еще), потому что там - документ. Достаточно сгруппировать по Ссылке. Если же тот запрос пропустить через конструктор, то он добавит.
#15
by misha122062
А почему же во 2 запросе прокатывает |СчетДт, Затраты, КодЗатрат, Сотрудник, Период, ПериодСтрокой,
#17
by 73
+ Смотри: 7 полей. 6 - СчетДт, Затраты, КодЗатрат, Сотрудник, Период, ПериодСтрокой и здесь они же 6: СГРУППИРОВАТЬ ПО СчетДт, Затраты, КодЗатрат, Сотрудник, Период, ПериодСтрокой 7-е в агрегатной ф-ции: СУММА(СуммаЗатрат)
#18
by misha122062
наверно конструктор не понял Период это ВложенныйЗапрос2.Период, а в МАКСИМУМ - РаботникиОрганизаций.Период. Наверно нужен другой псевдоним
#21
by misha122062
Спсибо - работает, но немного не так - период ПериодРаботникиОрганизаций пустой - NULL/ Почему так и не пойму.
#23
by 73
По-моему, наоборот надо. Твою основную таблицу что в описал как ДатаЗначения и Сотрудник, а к ней Левым прикручивать Регистр вложенными, делая срез.
#25
by misha122062
Немного не понял - а зачем вообще функция МАКСИМУМ? Но! ведь написано РаботникиОрганизаций.Период <= ВложенныйЗапрос2.КонМесяца. Получается зачем функция МАКСИМУМ, если ВложенныйЗапрос2.КонМесяца всегда больше?
#26
by 73
Ну а что такое Срез? Запись с максимальным Периодом, который <= заданной даты. Для того и Максимум.
#27
by misha122062
так я так и делал. Делаю основной запрос - там есть даты концов месяцев работы сотрудников. К ней ЛЕВЫМ соединением привязываю Срез по их должностям на эти концы месяцев
#28
by misha122062
РаботникиОрганизаций.Период = 01.09.09 Должность Слесарь РаботникиОрганизаций.Период = 30.09.09 Должность Сборщик РаботникиОрганизаций.Период = 01.10.09 Должность Монтажник Разве СрезПоследних по должностям = ВложенныйЗапрос2.КонМесяца = Концу месяца не даст результат на конец Сентября и Октября? зачем МАКСИМУМ тогда?
#29
by misha122062
Подскажите, а почему в лоб по простому нельзя? Точнее не идет - долность NULL. Мы же получаем на какую то дату, которая есть у нас. Или в параметрах среза надо задавать?
#30
by 73
Общий совет(туплю сегодня): Посмотри в во что разворачивается срез в зависимости от периодичности и т.п. Попробуй в консоли воспроизвести это для твоего регистра. Проверь чтоб работал. То что получится прилепи к твоему основному запросу. Вместо параметра &Дата поставь поле из основной таблицы(по которому срез хочешь).
#32
by misha122062
,Это понятно. Но не дает в соединении указать Дату из запроса Типа неверные параметры
#34
by 73
+ И потом условие по периоду здесь лишнее. Срез в качестве периода не всегда последнюю дату дает.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Закрытие месяца. Бух просит сделать вместо Д90.8.1 - К26 сделать Д90.2 - К26
- Помогите с запросом: нужно выбрать срез первых и срез последних.
- Как сделать в УТ8.0 сделать реализацию по нескольким заказам
- Как можно серый ip сделать белым если сделать у провайдера это нельзя
- Можно ли сделать элемент формы "подменю" сделать недоступным для разворачивания?
- Срез последних по каждой дате внутри запроса. Как сделать?
- Как во внутреннем запросе сделать "срез последних" до параметра внешнего запроса
- Можно ли сделать реквизит таб. части, сделать недоступным в отдельных строках?
- СКД : Соедиение с Регистр сведений срез последних срез ближайший по дате
- Срез первых и срез последних
- Срез кадровой истории в ЗУП 3.1. Как сделать?
- Конвертация. Как лучше сделать? Как вообще сделать?
В этой группе 1С
- Не запускается 1С на Windows 7. Программа "1С:V7 starter program (multi-user)"
- Обрезка базы 1с 7.7 Торговля + Склад
- Анализ доступности товаров на складах
- Отправка почты из 1С через the bat
- Школьная задачка, второй класс
- ЗУП, не корректно работает расчетный листок
- Как загрузить xls-кий файл в макет? (8.2)
- УПП 1.3 Вопрос по документу инвентаризация
- Разделять триады 1С8
- Фильтр таблицы значений
- SQL LIKE - как исключить строки, содержащие цифры ?
- Как получить остатки и обороты по всем датам в периоде?
- 1C + SQL 2000 + Windows 7 + Изменение структуры конфигурации = Ошибка SQL StateHY010
- v7: 1С 7.7 Тип значения в Запросе !
- УПП 1.2 Как оформить возврат оборудования переданного в монтаж на склад.
- Как в СКД программно установить отбор по произвольному полю?
- Быстрое сравнение больших .ert
- V81.COMConnector: (VB.net) Как поймать ошибку аутентификации?
- ЗУП: иностранец ошибка при тестировании на адрес АдрМЖРФ,АдрИНО
- Удаление объектов не под полными правами