|
СКД прячет некоторые строки, имеющиеся в запросе. | ☑ | ||
---|---|---|---|---|
0
ixilimuse
14.04.14
✎
13:41
|
Всем доброго времени суток.
Что-то не могу понять. Пытался смотреть в интернетах, но как-то не нашел аналогичных ситуаций. Может и плохо искал. В общем, есть запрос. В Консоли запроса либо через обычные программные методы, запрос возвращает 10 строк. К примеру. 9 документов и +1 документ "Генеральный договор". Собственно у генерального единственное отличие в том что не заполнены некоторые поля. Какие-то равны NULL какие-то пустой строке. Вот именно эта строка с налами и пустыми значениями не выводится через СКД. Один в один запрос. Одна база. Одни и те же значения параметров. Все одинаково. Но в СКД этой строки нет. Пробовал в запросе все потенциальные NULL'ы заменить пустыми ссылками, нулями и пустыми строками - не помогло. Словом все что приходило в голову уже перепробовал. Понимаю что дело в какой-то мелочи. Какой-то галочке или настройке. Но вот в какой уже затрудняюсь предположить. Буду благодарен если подскажите направление в котором стоит покопаться. Заранее спасибо. |
|||
1
ramir
14.04.14
✎
13:42
|
Запрос через ОБЪЕДЕНИТЬ? Какие группировки выводятся в СКД, детальные записи?
|
|||
2
ixilimuse
14.04.14
✎
13:48
|
Эмм.. Сам запрос - гигантский. Там куча временных таблиц и расчетов.
Финальная выборка имеет примерно такой вид: ВЫБРАТЬ ДД.Ссылка КАК Ссылка, ДД.Тип КАК Тип, ДД.ЛьготныйДоговор КАК ЛьготныйДоговор //Далее 60 полей... Имеют аналогичный вид. Разве что есть один кейс: ВЫБОР КОГДА (ДДД.Полис И ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДСП.Генеральный)) ИЛИ (ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДСП.Генеральный) И ДДД.ГенеральныйДоговор <> ДД.Ссылка) ИЛИ (ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДСП.Сложный) И ДДД.ГенеральныйДоговор <> ДД.Ссылка) //дебаг ИЛИ (ДДД.Полис И ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДВП.ГенеральныйДоговор)) ИЛИ (ДДД.ГенВидДоговора = ЗНАЧЕНИЕ(Перечисление.esc_ВидыДВП.ГенеральныйДоговор) И ДДД.ГенеральныйДоговор <> ДД.Ссылка) ТОГДА 0 ИНАЧЕ ДД.КоличествоДоговоров КОНЕЦ КАК КоличествоДоговоров, ИЗ ВТ_ПолныйФинал КАК ДД ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Действующие КАК ДДД ПО ДДД.Документ = ДД.Ссылка УПОРЯДОЧИТЬ ПО ДД.ДатаНачисления ; |
|||
3
ixilimuse
14.04.14
✎
13:55
|
Прошу прощения. Про группировки забыл отписать. Группировка одна единственная. В ней собственно все поля сидят. В закладке "Выбранные поля" этой группировки, имеются группы, для корректного отображения шапки. Других группировок нет.
|
|||
4
Пеппи
14.04.14
✎
13:58
|
(0) группировку убери и посмотри попадает ли в детальные записи твой документ
|
|||
5
ramir
14.04.14
✎
13:58
|
(3) Группировка по каким полям идет? Попробуйте удалить все поля из группировки.
|
|||
6
ixilimuse
14.04.14
✎
14:18
|
(4) Спасибо, ещё одну фичу СКД узнал)) Отобразил "<Детальные записи>". Документ туда тоже не попал.
(5) Группировка в понимании СКД по всем полям. Но вот даже при выводе "Детальных записей" результат не меняется. Один документ теряется. |
|||
7
ixilimuse
14.04.14
✎
14:36
|
Есть подозрение что это может быть как-то связано с промежуточными запросами (временными таблицами и выборками), пустыми полями и условиями. Казалось бы как?
Подозреваю что когда СКД преобразует запрос в свой оптимизированный запрос, где-то что-то и вылазиет)) Попробую в эту сторону покопать. Потом отпишусь. |
|||
8
Пеппи
14.04.14
✎
14:37
|
(6) тогда параметры. :)
наверняка этот док провели последним днем периода (6) а зачем группировать по всем полям? В этом нет смысла |
|||
9
ixilimuse
14.04.14
✎
14:53
|
(8) Собственно тоже теперь думаю что надо бы группировку заменить "дет. записями")) Просто в "Выбранных полях" так же выстроить последовательность полей, объединить поля в группы да и все)) Век живи, век учись.
|
|||
10
ixilimuse
15.04.14
✎
08:39
|
Все верно. В одном из промежуточных запросов, примерно на первой трети пути к результирующему набору данных, используются условия отбирающие по диапазону дат.
У того документа который не выводился, именно эти поля оставались NULL. Так как в этом документе нет данных в таб. части. Но в моем запросе все было предусмотрено так, что даже если там NULL, то условие отрабатывало нормально. И документ проходил. После преобразования запроса СКДшкой, видимо эта часть условия терялась и уже на том этапе, документ отсеивался. Поставил заглушку, которая подставляет даты из последнего документа договора, и на том уровне NULL изчез. Документ стал и в СКД выводиться. Такая вот прикольная задачка оказалась)) Всем спасибо за помощь :) |
|||
11
cons74
15.04.14
✎
09:26
|
есть консоль отчетов (от Чистова вроде) где виден преобразованный СКДшкой запрос.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |