|
Получить срез последних на дату из запроса. | ☑ | ||
---|---|---|---|---|
0
shane13
29.07.11
✎
13:15
|
Всем привет! Знаю, что тема избита и много раз обсуждалась... но у меня не получается(( никак.
Делаю отчет в котором в одном запросе нужно получить данные из регистра лл_ОказаниеУслуг и для каждой записи регистра получить значение из периодического регистра сведений. На СКД такое получилось через наборы данных и правильно установленные связи, но от СКД пришлось отказаться, поскольку отчет с сильно нестандартным макетом и были проблемы с вычисляемыми полями, поэтому пытаюсь сама сделать запрос конструктором. Пишу так: "ВЫБРАТЬ | лл_ОказаниеУслугОбороты.Регистратор, | лл_ОказаниеУслугОбороты.Доктор КАК Доктор, | лл_ОказаниеУслугОбороты.Услуга, | лл_ОказаниеУслугОбороты.СуммаОборот КАК СуммаОборот, | лл_ОказаниеУслугОбороты.КоличествоОборот КАК КоличествоОборот, | лл_ЦеныПараметрыУслугСрезПоследних.Сеансы КАК Сеансы, | лл_ЦеныПараметрыУслугСрезПоследних.КоэффициентВрача, | лл_ОказаниеУслугОбороты.Филиал КАК Филиал, | лл_ОказаниеУслугОбороты.Услуга.Родитель КАК УслугаРодитель |ИЗ | РегистрНакопления.лл_ОказаниеУслуг.Обороты(&ДатаНачала, &ДатаКонца, Регистратор, ) КАК лл_ОказаниеУслугОбороты | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.лл_ЦеныПараметрыУслуг.СрезПоследних КАК лл_ЦеныПараметрыУслугСрезПоследних | ПО лл_ОказаниеУслугОбороты.Филиал = лл_ЦеныПараметрыУслугСрезПоследних.Организация | И лл_ОказаниеУслугОбороты.Услуга = лл_ЦеныПараметрыУслугСрезПоследних.Услуга | И лл_ОказаниеУслугОбороты.Регистратор.Дата = лл_ЦеныПараметрыУслугСрезПоследних.Период |ИТОГИ | СУММА(СуммаОборот), | СУММА(КоличествоОборот), | СУММА(Сеансы) |ПО | Филиал, | УслугаРодитель, | Доктор"; Как передать дату для среза последних из лл_ОказаниеУслуг?(((( |
|||
1
shane13
29.07.11
✎
13:15
|
ссылка телепат-бота не спасла
|
|||
2
vicof
29.07.11
✎
13:17
|
РегистрСведений.лл_ЦеныПараметрыУслуг.СрезПоследних(&Дата) не?
|
|||
3
shane13
29.07.11
✎
13:17
|
очень прошу какой-нибудь простой и понятный пример
|
|||
4
shane13
29.07.11
✎
13:18
|
(2) по идее да, но туда мне кажется нереально передать параметром дату из записи регистра лл_ОказаниеУслуг
|
|||
5
szhukov
29.07.11
✎
13:19
|
(3) Через срез никак.
Нужно брать саму таблицу и выбирать записи с максимальным периодом < лл_ОказаниеУслуг.Период |
|||
6
vicof
29.07.11
✎
13:21
|
(4) не получится. См (5)
|
|||
7
vicof
29.07.11
✎
13:21
|
||||
8
shane13
29.07.11
✎
13:22
|
(5) как это правильно сделать? через временные таблицы? если можно на пальцах)
|
|||
9
szhukov
29.07.11
✎
13:24
|
(8) идея полно описана в (7)
|
|||
10
shane13
29.07.11
✎
13:26
|
(9) это я уже прочитала и на СКД получилось сделать, там есть картинки (что лично мне помогает врубиться что, где нужно ткнуть им написать), а просто по запросу мне трудно воссоздать это в конструкторе для своего примера.....
|
|||
11
shane13
29.07.11
✎
13:27
|
может быть подскажите в типовых где можно простой такой пример глянуть?
|
|||
12
szhukov
29.07.11
✎
13:43
|
(11)Меняете
И лл_ОказаниеУслугОбороты.Регистратор.Дата = лл_ЦеныПараметрыУслугСрезПоследних.Период На И лл_ОказаниеУслугОбороты.Регистратор.Дата <= лл_ЦеныПараметрыУслугСрезПоследних.Период После ВЫБРАТЬ МАКСИМУМ(лл_ЦеныПараметрыУслугСрезПоследних.Период). Результат во временную таблицу или как вложенный запрос. Временную таблицу связываете с РегистрСведений.лл_ЦеныПараметрыУслуг |
|||
13
szhukov
29.07.11
✎
13:45
|
+(12) т.е. В первом (вложенном запросе) вы получаете период (МАКСИМУМ(...Период) как ИскомыйПериодСреза), в котором вам нужна запись из РегистрСведений.лл_ЦеныПараметрыУслуг.
А затем вложенный запрос связываете с РегистрСведений.лл_ЦеныПараметрыУслуг таким образом РегистрСведений.лл_ЦеныПараметрыУслуг.Период =ВложенныйЗапрос.ИскомыйПериодСреза |
|||
14
szhukov
29.07.11
✎
13:46
|
+(12) Да и уберите в запросе СрезПоследних. Нужна просто таблица РегистрСведений.лл_ЦеныПараметрыУслуг
|
|||
15
szhukov
29.07.11
✎
13:48
|
+(12) Блин? ошибся с условием (в другую сторону конечно, больше либо равно)
И лл_ОказаниеУслугОбороты.Регистратор.Дата >= лл_ЦеныПараметрыУслуг.Период |
|||
16
shane13
29.07.11
✎
14:16
|
(12) -(15) спасибо, пробую
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |