|
Срез на дату производственного календаря | ☑ | ||
---|---|---|---|---|
0
ХочуСпец
21.08.12
✎
15:32
|
Хочу выводить на каждую дату производственного календаря, отфильтрованного за период, некий показатель (срез последних) из периодического РС (периодичность День). Выводит хрень.
Что сделал не так? ВЫБРАТЬ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря ПОМЕСТИТЬ ВТ_Общая ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНачала И &ДатаОкончания ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Общая.ДатаКалендаря, МАКСИМУМ(Показатель.Период) КАК Период ПОМЕСТИТЬ ВТ_МаксПериод ИЗ ВТ_Общая КАК ВТ_Общая ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Показатель КАК Показатель ПО ВТ_Общая.ДатаКалендаря >= Показатель.Период СГРУППИРОВАТЬ ПО ВТ_Общая.ДатаКалендаря ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_МаксПериод.ДатаКалендаря, ЕСТЬNULL(Показатель.ПроцентЗаполнения, 0) КАК Показатель ПОМЕСТИТЬ ВТ_Показатели ИЗ ВТ_МаксПериод КАК ВТ_МаксПериод ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Показатель КАК Показатель ПО ВТ_МаксПериод.Период = Показатель.Период ; ВЫБРАТЬ ВТ_Досье.ДатаКалендаря, ВТ_Досье.Показатель КАК Показатель ИЗ Показатели КАК Показатели |
|||
1
DrShad
21.08.12
✎
15:36
|
что ты ему прописал выводить то и выводит
|
|||
2
DrShad
21.08.12
✎
15:36
|
+(1) а что именно ты от него ожидал непонятно
|
|||
3
Maxus43
21.08.12
✎
15:37
|
где Срез последних?
|
|||
4
ХочуСпец
21.08.12
✎
15:37
|
(2) срез последних на каждую дату календаря
|
|||
5
hhhh
21.08.12
✎
15:38
|
(4) а измерений вообще нет у регистра, что ли?
|
|||
6
ХочуСпец
21.08.12
✎
15:40
|
(5) есть
нужны общие значения на каждую дату. Но при группировке по дате календаря, все равно не выходит аленький цветочек вообще делал по аналогии (временные таблицы) http://1cskd.ru/2010/10/srez-poslednix-na-kazhduyu-datu-v-skd/ |
|||
7
hhhh
21.08.12
✎
15:41
|
(6) последнюю строчку запроса объясни. Что за Показатели? И откуда они возникают?
|
|||
8
ХочуСпец
21.08.12
✎
15:45
|
(7)
итоговый запрос: ВЫБРАТЬ Показатели.ДатаКалендаря, Показатели.Показатель КАК Показатель ИЗ ВТ_Показатели КАК Показатели |
|||
9
hhhh
21.08.12
✎
15:48
|
(8) а если на эту дату 500 записей в регистре Тебе нужно, чтобы все 500 вывелись?
|
|||
10
ХочуСпец
21.08.12
✎
15:50
|
(9) группирую записи по Дате календаря. На каждую дату - один итоговый показатель
|
|||
11
hhhh
21.08.12
✎
15:52
|
(10) ну вот запрос, который вытягивает показатели, предпоследний:
ВЫБРАТЬ ВТ_МаксПериод.ДатаКалендаря, ЕСТЬNULL(Показатель.ПроцентЗаполнения, 0) КАК Показатель ПОМЕСТИТЬ ВТ_Показатели ИЗ ВТ_МаксПериод КАК ВТ_МаксПериод ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Показатель КАК Показатель ПО ВТ_МаксПериод.Период = Показатель.Период никаких группировок не видно, фигачишь целиком весь регистр |
|||
12
ХочуСпец
21.08.12
✎
15:55
|
(11) да это понятно. Группирую потом, просто здесь не показал
|
|||
13
ХочуСпец
21.08.12
✎
15:59
|
не сходятся значения.
выбираю срез последних на определенную дату. Показатели группирую. Не сходится с (0) |
|||
14
ХочуСпец
21.08.12
✎
16:24
|
Может так будет более понятно:
ВЫБРАТЬ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря ПОМЕСТИТЬ ВТ_Общая ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНачала И &ДатаОкончания ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_Общая.ДатаКалендаря, МАКСИМУМ(Показатель.Период) КАК Период ПОМЕСТИТЬ ВТ_МаксПериод ИЗ ВТ_Общая КАК ВТ_Общая ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Показатель КАК Показатель ПО ВТ_Общая.ДатаКалендаря >= Показатель.Период СГРУППИРОВАТЬ ПО ВТ_Общая.ДатаКалендаря ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_МаксПериод.ДатаКалендаря, ЕСТЬNULL(Показатель.ПроцентЗаполнения, 0) КАК Показатель ПОМЕСТИТЬ ВТ_Показатели ИЗ ВТ_МаксПериод КАК ВТ_МаксПериод ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Показатель КАК Показатель ПО ВТ_МаксПериод.Период = Показатель.Период ; ВЫБРАТЬ Показатели.ДатаКалендаря, Сумма(Показатели.Показатель) КАК Показатель ИЗ ВТ_Показатели КАК Показатели СГРУППИРОВАТЬ ПО Показатели.ДатаКалендаря |
|||
15
ХочуСпец
21.08.12
✎
16:29
|
напомню периодичность РС "Показатель" День. Т.е. записи скажем на 01.08 будут с периодом 01.08.12 000000
|
|||
16
kumena
21.08.12
✎
16:33
|
это зачем?
ВЫБРАТЬ Показатели.ДатаКалендаря, Сумма(Показатели.Показатель) КАК Показатель ИЗ ВТ_Показатели КАК Показатели СГРУППИРОВАТЬ ПО Показатели.ДатаКалендаря если на каждую дату календаря по одному значению и что вообще хочется получить то? |
|||
17
ХочуСпец
21.08.12
✎
16:38
|
(16) У РС "Показатель" есть измерения.
Суммарный показатель по всем измерениям |
|||
18
ХочуСпец
21.08.12
✎
16:56
|
Попробовал сделать так:
ВЫБРАТЬ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря ПОМЕСТИТЬ ВТ_Календарь ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ДатаНачала И &ДатаОкончания ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Общая.ДатаКалендаря, СУММА(Показатели.Показатель) КАК Показатель ИЗ ВТ_Календарь КАК Общая ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Показатель КАК Показатели ПО (Показатели.Период В (ВЫБРАТЬ ПЕРВЫЕ 1 ПоказателиПериод.Период ИЗ РегистрСведений.Показатель КАК ПоказателиПериод ГДЕ ПоказателиПериод.Период <= Общая.ДатаКалендаря УПОРЯДОЧИТЬ ПО ПоказателиПериод.Период УБЫВ)) СГРУППИРОВАТЬ ПО Общая.ДатаКалендаря НО СИТУАЦИИ ЭТО НЕ ИЗМЕНИЛО: на 01.08 Показатель = 150. Хотя если отбирать РегистрСведений.ПоказательСрезПоследних(НаДату) и сгруппировать показатель = 50 |
|||
19
ХочуСпец
21.08.12
✎
17:11
|
Ситуация следующая:
на 01.08 Показатель совпал со срезом последних, но на 10.08 Срез последних = 190 из моего запроса на 10.08 = 20 |
|||
20
ХочуСпец
21.08.12
✎
17:47
|
Проанализировал ситуацию:
на 30.07.12 автоматом был заполнен РС "Показатели". на 01.08 - 06.08 Запрос отрабатывает правильно (в этот период РС не редактировался) с 07.08 начались ручные добавления в РС. В моем случае на 07.08 и далее запрос, видимо, отбирает записи только на определенный день, что естесно неправильно. Что же не так в запросе? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |