![]() |
![]() |
|
Странное поведение СКД | ☑ | ||
---|---|---|---|---|
0
presto
03.04.15
✎
10:17
|
Есть некий запрос. Он специально написан с несколькими виртуальными таблицами (это частичный случай из моего запроса)
ВЫБРАТЬ ДАТАВРЕМЯ(2014, 9, 15) КАК Период, КОЛИЧЕСТВО(РАЗЛИЧНЫЕ "Сотрудник1") КАК Сотрудник, "Организация" КАК Организация ПОМЕСТИТЬ ВТ_Сотрудники ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ДАТАВРЕМЯ(2014, 9, 1), КОЛИЧЕСТВО(РАЗЛИЧНЫЕ "Сотрудник2"), "Организация" ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря ПОМЕСТИТЬ ВТ_ДниКалендаря ИЗ РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &ПериодС И &ПериодПО ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_ДниКалендаря.ДатаКалендаря, ВТ_Сотрудники.Сотрудник, ВТ_Сотрудники.Организация ПОМЕСТИТЬ ВТ_КоличествоПоДнях ИЗ ВТ_ДниКалендаря КАК ВТ_ДниКалендаря ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_Сотрудники КАК ВТ_Сотрудники ПО ВТ_ДниКалендаря.ДатаКалендаря >= ВТ_Сотрудники.Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_КоличествоПоДнях.ДатаКалендаря, ВТ_КоличествоПоДнях.Организация, СУММА(ВТ_КоличествоПоДнях.Сотрудник) КАК Количество ПОМЕСТИТЬ ВТ_КолПоДняхСгрупированно ИЗ ВТ_КоличествоПоДнях КАК ВТ_КоличествоПоДнях СГРУППИРОВАТЬ ПО ВТ_КоличествоПоДнях.ДатаКалендаря, ВТ_КоличествоПоДнях.Организация ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ_КолПоДняхСгрупированно.Организация КАК Организация, СРЕДНЕЕ(ВТ_КолПоДняхСгрупированно.Количество) КАК Количество {ВЫБРАТЬ Организация, Количество} ИЗ ВТ_КолПоДняхСгрупированно КАК ВТ_КолПоДняхСгрупированно СГРУППИРОВАТЬ ПО ВТ_КолПоДняхСгрупированно.Организация Параметри дат ПериодС = 01,09,2014 и ПериодПо = 30,09,2014 Результат запроса в консоли: Организация Количество Организация 1,533333 Тоесть среднее количество за месяц Когда я делаю отчет из этого запроса на СКД, то результат совсем другой: Организация Количество Организация 46 Были попытки снять галочку Автозаполнение и другое, но не помагает ничего. Почему такой результат? Скачать в хмл отчет - http://rghost.ru/79TdDGVHm Скачать в ерф формате - http://rghost.ru/878hrYWvS |
|||
1
Локи-13
03.04.15
✎
10:19
|
возьми консоль СКД и посмотри итоговый запрос
наверняка часть полей из запроса удаляется как необязательные |
|||
2
vicof
03.04.15
✎
10:19
|
а кроме галки Автозаполнения параметры виртуальных таблиц прописывал в скд?
|
|||
3
presto
03.04.15
✎
10:24
|
||||
4
presto
03.04.15
✎
10:38
|
Как вообще запретить СКД чтото править в моем запросе?
|
|||
5
presto
03.04.15
✎
10:51
|
Таки да! Черт, он удалил поле ДатаКалендаря. Как это исправить???
ВЫБРАТЬ ВТ_КоличествоПоДнях.ДатаКалендаря, ВТ_КоличествоПоДнях.Организация, СУММА(ВТ_КоличествоПоДнях.Сотрудник) КАК Количество ПОМЕСТИТЬ ВТ_КолПоДняхСгрупированно ИЗ ВТ_КоличествоПоДнях КАК ВТ_КоличествоПоДнях СГРУППИРОВАТЬ ПО ВТ_КоличествоПоДнях.ДатаКалендаря, ВТ_КоличествоПоДнях.Организация ; |
|||
6
yavasya
03.04.15
✎
11:02
|
наругать . в консоле запросов все работает?
|
|||
7
presto
03.04.15
✎
11:12
|
В консоле запросов все отлично. А вот если єтот запрос кинуть в отчет на СКД - то бера.
Я разобрался почему. Потому что СКД оптимизирует мой запрос, удаляя одно из полей в виртуальной таблице. Но удаляет потому, что в результирующей выборке это поле не используется, оно просто группируется в последнем запросе пакета. Как обойти - протянуть это поле в результирующий запрос и сделать группировку с помощью СКД. |
|||
8
barrgand
03.04.15
✎
11:14
|
(7) Сделать его обязательным
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |