|
В запросе заполнить пустые значения последним значением по периоду | ☑ | ||
---|---|---|---|---|
0
smartu
12.03.15
✎
16:48
|
Есть временная таблица:
01.01.2014 0:00:00 100 01.02.2014 0:00:00 Null 01.03.2014 0:00:00 Null 01.04.2014 0:00:00 Null 01.05.2014 0:00:00 150 01.06.2014 0:00:00 200 01.07.2014 0:00:00 Null 01.08.2014 0:00:00 Null 01.09.2014 0:00:00 Null 01.10.2014 0:00:00 Null 01.11.2014 0:00:00 Null 01.12.2014 0:00:00 Null подскажите, как ее в запросе привести к виду: 01.01.2014 0:00:00 100 01.02.2014 0:00:00 100 01.03.2014 0:00:00 100 01.04.2014 0:00:00 100 01.05.2014 0:00:00 150 01.06.2014 0:00:00 200 01.07.2014 0:00:00 200 01.08.2014 0:00:00 200 01.09.2014 0:00:00 200 01.10.2014 0:00:00 200 01.11.2014 0:00:00 200 01.12.2014 0:00:00 200 т.е. заменить null последним значением по периоду. |
|||
1
Napalmmm
12.03.15
✎
16:55
|
Может быть так?
Для Сч = 0 По ВременнаяТаблица.Количество() Цикл Если ВременнаяТаблица[Сч].<СтрокаСКоличеством> = Null Тогда ВременнаяТаблица[Сч].<СтрокаСКоличеством> = ВременнаяТаблица[Сч-1].<СтрокаСКоличеством> КонецЕсли; КонецЦикла; При условии, что первая строка <> Null |
|||
2
Napalmmm
12.03.15
✎
16:55
|
(1) КолонкаСКоличеством*
|
|||
3
Napalmmm
12.03.15
✎
16:57
|
(1) Для Сч = 0 По ВременнаяТаблица.Количество()-1 Цикл
Еще один мой косяк |
|||
4
smartu
12.03.15
✎
16:57
|
необходимо инструментами запроса.
|
|||
5
smartu
12.03.15
✎
16:58
|
необходимо соединение, условие связи не пойму какое нужно
|
|||
6
Napalmmm
12.03.15
✎
16:58
|
(4) Извини, туплю
Вариант: выгрузить запрос в тз, дозаполнить значениями и "вернуться" в запрос с уже заполненной тз не подходит? |
|||
7
smartu
12.03.15
✎
17:01
|
наверное не подойдет, отчет скд
|
|||
8
alex_shkut
12.03.15
✎
17:02
|
Посмотрите здесь, может что подойдет:
Книга знаний: Срез последних на каждую дату в запросе |
|||
9
Лефмихалыч
12.03.15
✎
17:16
|
ВЫБРАТЬ
ВТ.Дата, ВТ.Значение ПОМЕСТИТЬ ВТ ИЗ &ВТ КАК ВТ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Дата, ВТ.Значение ПОМЕСТИТЬ ТолькоЗаполненные ИЗ ВТ КАК ВТ ГДЕ ВТ.Значение > 0 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Дата, ВТ.Значение, ТолькоЗаполненные.Значение КАК Значение1 ИЗ ВТ КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ВТ.Дата КАК ОсновнаяДата, МАКСИМУМ(ТолькоЗаполненные.Дата) КАК ДатаМаксимум ИЗ ВТ КАК ВТ ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТолькоЗаполненные КАК ТолькоЗаполненные ПО ВТ.Дата >= ТолькоЗаполненные.Дата СГРУППИРОВАТЬ ПО ВТ.Дата) КАК ВЗ ЛЕВОЕ СОЕДИНЕНИЕ ТолькоЗаполненные КАК ТолькоЗаполненные ПО ВЗ.ДатаМаксимум = ТолькоЗаполненные.Дата ПО ВТ.Дата = ВЗ.ОсновнаяДата |
|||
10
Лефмихалыч
12.03.15
✎
17:17
|
||||
11
Крошка Ру
12.03.15
✎
17:28
|
(9) Вложенный запрос - это зло. Особенно в соединениях
|
|||
12
Nuobu
12.03.15
✎
17:35
|
(11) А почему? Как тогда сделать срез последних на дату в запроса?
|
|||
13
Nuobu
12.03.15
✎
17:36
|
(12) запроса = запросе.
|
|||
14
mikecool
12.03.15
✎
17:38
|
(11) продолжайте так считать
|
|||
15
Крошка Ру
12.03.15
✎
17:39
|
(14) Так считаю не я
|
|||
16
Nuobu
12.03.15
✎
17:59
|
(15) А кто тогда? Фраза - Ваша.
|
|||
17
vyaz
12.03.15
✎
18:26
|
(16) Так считает оптимизатор сервера СУБД при построении плана запроса, скорее всего из-за Nested Loops
|
|||
18
D_E_S_131
12.03.15
✎
18:34
|
(12) Через временную таблицу, где будут предварительно выбраны значения для подстановки.
|
|||
19
D_E_S_131
12.03.15
✎
18:36
|
(18) По примеру того как получают запросом курс валюты на дату документа.
|
|||
20
Nuobu
12.03.15
✎
19:07
|
(19) (18) Как выбирают?
|
|||
21
Nuobu
12.03.15
✎
19:07
|
(20) Тоесть получают.
|
|||
22
D_E_S_131
12.03.15
✎
19:50
|
|
|||
23
D_E_S_131
12.03.15
✎
19:53
|
(22) Обрати внимание, что в первом запросе условие по Периоду идет >= (все периоды загрузки курсов до даты документа, а из них ближайшая через МАКСИМУМ()), а во втором запросе условие по Периоду = (получаем конкретную запись регистра сведений).
|
|||
24
Лефмихалыч
13.03.15
✎
08:24
|
(11) категоричность суждений - признак поверхностности знаний предмета
|
|||
25
D_E_S_131
13.03.15
✎
09:59
|
(24) Некоторым нужно говорить "Делай так, а так не делай!", а углублять знание предмета только после оценки реакции.
1. "ОК, сделаю" — не углублять. 2. "А почему так не делать?" — углублять. |
|||
26
Крошка Ру
13.03.15
✎
18:55
|
(24) Правильно говорить не "поверхностности", а "обширности".
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |