Странное поведение запроса в СКД

1. CYMTU 2 29.07.19 04:38 Сейчас в теме
Всем привет. Столкнулся со странным поведением запроса в СКД при группировки данных, хотя в консоли запросов все отрабатывает как нужно.

Вот для начала первоначальные данные, которые я тяну из временной таблицы, которая тоже получена на основе виртуальной таблицы регистра.

ВЫБРАТЬ
	Таб.Номенклатура,
	Таб.ДатаКалендаря,
	Таб.КоличествоКонечныйОстаток
ИЗ
	ТаблицаОстатковПоДням КАК Таб


Результаты в СКД и Консоли соответственно рис 1.png и 1_1.png.Здесь все верно.

Хочу просуммировать сколько дней не было остатков по номенклатуре запросом
ВЫБРАТЬ
	Таб.Номенклатура,
	СУММА(ВЫБОР
			КОГДА Таб.КоличествоКонечныйОстаток <= 0
				ТОГДА 1
			ИНАЧЕ 0
		КОНЕЦ) КАК КоличествоДнейОтсутсвия
ИЗ
	ТаблицаОстатковПоДням КАК Таб

СГРУППИРОВАТЬ ПО
	Таб.Номенклатура
;
Показать


Результаты в СКД и Консоли соответственно рис 3.png и 3_3.png. Консоль все правильно расчитывает, а СКД вообще как будто не видит ни каких данных.
В чем может быть проблема и как это победить? Кто-нибудь с таким сталкивался?
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
5. dhurricane 29.07.19 08:16 Сейчас в теме
(1) Хорошо бы посмотреть полный запрос. Что видно из представленных снимков: в конечном запросе не используется поле "ДатаКалендаря". Для консоли запросов это не имеет значения, но для СКД это важно. Раз поле не используется, СКД вероятнее всего посчитало его ненужным, и посему "выкинуло" из всех запросов пакета, где оно использовалось. Такое решение СКД могло исказить результаты запроса, из-за чего и отчет получился пустой.

Самое простое решение - не отказываться от использования даты. Например, для подсчета количества дней отсутствия добавить новое вычисляемое поле:
// Выражение:
ВЫБОР КОГДА КоличествоКонечныйОстаток <= 0
   ТОГДА 1
   ИНАЧЕ 0
КОНЕЦ

// Ресурс:
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ
   ВЫБОР КОГДА КоличествоКонечныйОстаток <= 0
      ТОГДА ДатаКалендаря
   КОНЕЦ)
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 130 29.07.19 04:58 Сейчас в теме
(1) в СКД на закладке Ресурсы добавили ваш показатель "КоличествоДнейОтсутсвия" ?
3. CYMTU 2 29.07.19 05:07 Сейчас в теме
5. dhurricane 29.07.19 08:16 Сейчас в теме
(1) Хорошо бы посмотреть полный запрос. Что видно из представленных снимков: в конечном запросе не используется поле "ДатаКалендаря". Для консоли запросов это не имеет значения, но для СКД это важно. Раз поле не используется, СКД вероятнее всего посчитало его ненужным, и посему "выкинуло" из всех запросов пакета, где оно использовалось. Такое решение СКД могло исказить результаты запроса, из-за чего и отчет получился пустой.

Самое простое решение - не отказываться от использования даты. Например, для подсчета количества дней отсутствия добавить новое вычисляемое поле:
// Выражение:
ВЫБОР КОГДА КоличествоКонечныйОстаток <= 0
   ТОГДА 1
   ИНАЧЕ 0
КОНЕЦ

// Ресурс:
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ
   ВЫБОР КОГДА КоличествоКонечныйОстаток <= 0
      ТОГДА ДатаКалендаря
   КОНЕЦ)
Показать
7. CYMTU 2 29.07.19 08:47 Сейчас в теме
4. buganov 201 29.07.19 06:14 Сейчас в теме
В ресурсе укажите, что группировка по номенклатуре
9. CYMTU 2 29.07.19 08:50 Сейчас в теме
6. user_2010 933 29.07.19 08:35 Сейчас в теме
Сталкивалась с таким поведение: в консоли запросов все работает - в компоновщике этот же самый запрос работает по-другому.
Насколько я поняла, компоновщик делает оптимизацию запроса - на свое усмотрение, и выполняемый запрос становится другим!!!

Вам нужно разделить на 2 запроса вот этот ваш запрос:
ВЫБРАТЬ
    Таб.Номенклатура,
    СУММА(ВЫБОР
            КОГДА Таб.КоличествоКонечныйОстаток <= 0
                ТОГДА 1
            ИНАЧЕ 0
        КОНЕЦ) КАК КоличествоДнейОтсутсвия
ИЗ
    ТаблицаОстатковПоДням КАК Таб

СГРУППИРОВАТЬ ПО
    Таб.Номенклатура
;
Показать


Сначала без суммы - просто сформируейте поле
ВЫБОР
            КОГДА Таб.КоличествоКонечныйОстаток <= 0
                ТОГДА 1
            ИНАЧЕ 0
        КОНЕЦ КАК КоличествоДнейОтсутсвия,



а уже в следующем запросе ВЫБРАТЬ примените СУММА() к этому полю!
8. CYMTU 2 29.07.19 08:49 Сейчас в теме
(6)Не, помогло. Первый запрос отрабатывает, а второй опять ничего не выводит. Решение в (5) не надо было выкидывать поле ДатаКалендаря.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот