|
объединение двух таблиц |
☑ |
0
RizONE
29.01.18
✎
11:54
|
Подскажите решение такой задачи:
регистр накопления по периодам, например
01.12.2017
01.01.2018
01.02.2018
01.03.2018
01.04.2018
периодический регистр цен, типа
01.01.2016 140
01.02.2018 128
01.03.2018 315
как прикрутить цены в запросе к регистру накопления, чтобы напротив каждой строки стояла своя цена?
|
|
1
Timon1405
29.01.18
✎
12:07
|
поискать срез последних на каждую дату не предлагать?
|
|
2
RizONE
29.01.18
✎
12:10
|
(1) предлагай, главное чтобы все делалось в запросе
|
|
3
Timon1405
29.01.18
✎
12:12
|
|
|
4
Azxcvbn
29.01.18
✎
12:35
|
Не объединение, гуглите срез последних на каждую дату, найдете кучу решений
|
|
5
RizONE
29.01.18
✎
13:52
|
Спасибо за наводки.
Решилось довольно просто )
|
|
6
RizONE
29.01.18
✎
13:59
|
// разворачиваем регистр в строки
ВЫБРАТЬ
Запрос.Период,
СУММА(Запрос.Цена_1) КАК Цена_1,
СУММА(Запрос.Цена_2) КАК Цена_2
ПОМЕСТИТЬ Цены
ИЗ
(ВЫБРАТЬ
Цены.Период КАК Период,
ВЫБОР
КОГДА Цены.ТипУслуги = ЗНАЧЕНИЕ(перечисление.ТипУслуги.Услуга_1)
ТОГДА Цены.Цена
ИНАЧЕ 0
КОНЕЦ КАК Цена_1,
ВЫБОР
КОГДА Цены.ТипУслуги = ЗНАЧЕНИЕ(перечисление.ТипУслуги.Услуга_2)
ТОГДА Цены.Цена
ИНАЧЕ 0
КОНЕЦ КАК Цена_2
ИЗ
РегистрСведений.Цены КАК Цены) КАК Запрос
СГРУППИРОВАТЬ ПО
Запрос.Период
;
////////////////////////////////////////////////////////////////////////////////
// тут собираем все периоды по которым нужны Цены
ВЫБРАТЬ РАЗЛИЧНЫЕ
Начисления.Период
ПОМЕСТИТЬ Периоды
ИЗ
РегистрНакопления.Начисления КАК Начисления
;
////////////////////////////////////////////////////////////////////////////////
// собственно вся магия
ВЫБРАТЬ
Периоды.Период,
МАКСИМУМ(Цены.Период) КАК ПериодЦены
ПОМЕСТИТЬ ППЦ
ИЗ
Периоды КАК Периоды
ЛЕВОЕ СОЕДИНЕНИЕ Цены КАК Цены
ПО Периоды.Период >= Цены.Период
СГРУППИРОВАТЬ ПО
Периоды.Период
;
////////////////////////////////////////////////////////////////////////////////
// результат
ВЫБРАТЬ
ППЦ.Период,
Цены.Цена_1,
Цены.Цена_2
ИЗ
ППЦ КАК ППЦ
ЛЕВОЕ СОЕДИНЕНИЕ Цены КАК Цены
ПО ППЦ.ПериодЦены = Цены.Период
|
|