|
Необходимы данные с регистра сведений по заданным датам | ☑ | ||
---|---|---|---|---|
0
KIraA
12.06.19
✎
07:00
|
Доброго времени суток. Вот запрос...не взлетает :-((
Необходимо с регистра сведений взять данные на срез последних по определенным датам. Подскажите где что подправить? "ВЫБРАТЬ РАЗЛИЧНЫЕ | НАЧАЛОПЕРИОДА(РегистрСтатусовСрезПоследних.Регистратор.Дата, МЕСЯЦ) КАК РегистраторДата |ПОМЕСТИТЬ Даты |ИЗ | РегистрСведений.РегистрСтатусов.СрезПоследних КАК РегистрСтатусовСрезПоследних |ГДЕ | РегистрСтатусовСрезПоследних.Регистратор.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | &Даты КАК Даты, | КОЛИЧЕСТВО(РегистрСтатусовСрезПоследних.ОбъектДом) КАК ОбъектДом |ИЗ | Даты КАК Даты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСтатусов.СрезПоследних(&Даты) КАК РегистрСтатусовСрезПоследних | ПО Даты.РегистраторДата = РегистрСтатусовСрезПоследних.Период |ГДЕ | РегистрСтатусовСрезПоследних.СтатусПомещения = ЗНАЧЕНИЕ(перечисление.СБ_СтатусыОбъектов.Активен)" |
|||
1
Мимохожий Однако
12.06.19
✎
07:02
|
(0) В формулировке "срез последних по определенным датам" заложено противоречие. Если между, то бери не срезы, а просто записи регистра.
|
|||
2
KIraA
12.06.19
✎
07:13
|
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| НАЧАЛОПЕРИОДА(РегистрСтатусов.Регистратор.Дата, МЕСЯЦ) КАК РегистраторДата |ПОМЕСТИТЬ Даты |ИЗ | РегистрСведений.РегистрСтатусов КАК РегистрСтатусов |ГДЕ | РегистрСтатусов.Регистратор.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | &Даты КАК Даты, | КОЛИЧЕСТВО(РегистрСтатусов.ОбъектДом) КАК ОбъектДом |ИЗ | Даты КАК Даты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСтатусов(&Даты) КАК РегистрСтатусов | ПО Даты.РегистраторДата = РегистрСтатусов.Период |ГДЕ | РегистрСтатусов.СтатусПомещения = ЗНАЧЕНИЕ(перечисление.СБ_СтатусыОбъектов.Активен)" не сработало |
|||
3
catena
12.06.19
✎
07:17
|
(2)Переформулируйте задачу, непонятно, что пытаетесь сделать.
|
|||
4
Пузан
12.06.19
✎
07:21
|
СрезПоследних не поможет. Если в цикле решать задачу нельзя, то придется писать запрос получающий срез последних по датам (или любому другому набору данных) самостоятельно. Через соединение регистра с самим собой по максимуму дат и выборкой нужных реквизитов для соединения с набором данных. Как то так.
|
|||
5
Мимохожий Однако
12.06.19
✎
07:25
|
(2) Пока не сформулируешь для себя (и ,возможно, для нас), не взлетит. Возможно, тебе нужны данные по датам по каждому регистратору. Но это называется по - другому. Нажми красную Я, там есть на эту тему.
|
|||
6
KIraA
12.06.19
✎
07:26
|
Есть запрос который отрабатывает правильно, но с конкретным указанием даты.
|ВЫБРАТЬ | КОЛИЧЕСТВО(РегистрСтатусовСрезПоследних.ОбъектДом) КАК ОбъектДом |ИЗ | Даты КАК Даты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСтатусов.СрезПоследних(&Дата) КАК РегистрСтатусовСрезПоследних | ПО Даты.РегистраторДата = РегистрСтатусовСрезПоследних.Период |ГДЕ | РегистрСтатусовСрезПоследних.СтатусПомещения = ЗНАЧЕНИЕ(перечисление.СБ_СтатусыОбъектов.Активен)" Теперь нужно получить такие же данные но по нескольким датам. Не прибегая к циклу. |
|||
7
Мимохожий Однако
12.06.19
✎
07:43
|
||||
8
Вася Теркин
12.06.19
✎
12:09
|
проще всего динамически текст запроса сформировать через ОБЪЕДИНИТЬ
|
|||
9
Вася Теркин
12.06.19
✎
12:14
|
ТекстЗапроса = "&&";
Для каждого текДата из массивДат Цикл ТекстЗапроса = ТекстЗапроса + "ОБЪЕДИНИТЬ ВСЕ |ВЫБРАТЬ | КОЛИЧЕСТВО(РегистрСтатусовСрезПоследних.ОбъектДом) КАК ОбъектДом |ИЗ | Даты КАК Даты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РегистрСтатусов.СрезПоследних("+ ВернутьДатуОтформитированной(текДата ) + ") КАК РегистрСтатусовСрезПоследних | ПО Даты.РегистраторДата = РегистрСтатусовСрезПоследних.Период |ГДЕ | РегистрСтатусовСрезПоследних.СтатусПомещения = ЗНАЧЕНИЕ(перечисление.СБ_СтатусыОбъектов.Активен)"; КонецЦикла; ТекстЗапроса = СтрЗаменить(ТекстЗапроса,"&&ОБЪЕДИНИТЬ ВСЕ",""); |
|||
10
Вася Теркин
12.06.19
✎
12:16
|
Как-то так
А зачем тебе Даты КАК Даты? Запрос странный |
|||
11
PuhUfa
12.06.19
✎
13:12
|
||||
12
Amfiaray
12.06.19
✎
14:27
|
ВЫБРАТЬ
ТабдицаДат.Дата ПОМЕСТИТЬ ВТ_Даты ИЗ &ТабдицаДат КАК ТабдицаДат ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Даты.Дата, ДокументыФизическихЛиц.Физлицо, МАКСИМУМ(ДокументыФизическихЛиц.Период) КАК Период, ДокументыФизическихЛиц.ВидДокумента ПОМЕСТИТЬ ВТ_МаксимальныеПериоды ИЗ ВТ_Даты КАК ВТ_Даты ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц КАК ДокументыФизическихЛиц ПО ВТ_Даты.Дата >= ДокументыФизическихЛиц.Период СГРУППИРОВАТЬ ПО ДокументыФизическихЛиц.Физлицо, ВТ_Даты.Дата, ДокументыФизическихЛиц.ВидДокумента ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_МаксимальныеПериоды.Дата, ДокументыФизическихЛиц.Физлицо, ДокументыФизическихЛиц.ВидДокумента, ДокументыФизическихЛиц.Серия, ДокументыФизическихЛиц.Номер, ДокументыФизическихЛиц.ДатаВыдачи, ДокументыФизическихЛиц.СрокДействия, ДокументыФизическихЛиц.КемВыдан, ДокументыФизическихЛиц.КодПодразделения, ДокументыФизическихЛиц.ЯвляетсяДокументомУдостоверяющимЛичность, ДокументыФизическихЛиц.Представление ИЗ ВТ_МаксимальныеПериоды КАК ВТ_МаксимальныеПериоды ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДокументыФизическихЛиц КАК ДокументыФизическихЛиц ПО ВТ_МаксимальныеПериоды.Период = ДокументыФизическихЛиц.Период И ВТ_МаксимальныеПериоды.Физлицо = ДокументыФизическихЛиц.Физлицо И ВТ_МаксимальныеПериоды.ВидДокумента = ДокументыФизическихЛиц.ВидДокумента |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |