Прежде всего, если у вас нет или ограниченный опыт работы с HANA Studio и Business Objects продвигайтесь вперед; это, вероятно, не будет иметь смысла для вас.
Допустим, мы создаем представление расчета размеров, объединяющее EKKO / EKPO (строка заказа на поставку и заказа на поставку) и называем его "CA_PO"
Затем мы создаем звездообразное соединение, используя этот CA_PO, чтобы получить все значения или тексты таблицы проверки. В частности, в этом случае INCO1 (INCOTERMS)
Одно из таких объединений будет EKKO.INCO1 с TINCT.INCO1 (EKKO.MANDT TO TINCT.MANDT и для простоты позволяет фильтровать только для языка 'E'.
Допустим, у EKKO 70 000 записей; поэтому я ожидаю, что результаты этого ВНУТРЕННЕГО СОЕДИНЕНИЯ также будут иметь 70000 записей Однако я теряю много записей.
Когда я смотрю на различные значения в EKKO, я обнаруживаю, что несколько значений INCO1 из EKKO являются пустым набором ''; не нулевой, как ожидалось. Так что мое внутреннее соединение между этими таблицами приводит к потерям записей.
Я думал о переходе на левые соединения; но понял, когда пользователи позже фильтруют в Business Objects по описанию INCO1 для «Free on Board», я не собираюсь ограничивать записи из-за левого соединения ... Вместо этого; Я ограничусь только отображаемым текстом. Таким образом, система должна будет проанализировать все записи, сохраняя только те, которые являются FOB, вместо того, чтобы ограничиваться только этими записями в первую очередь.
Так что это заставило меня задуматься ... Как мне справиться с тем фактом, что ECC хранит пустой набор вместо нулевого. если бы значения были нулевыми, я мог бы использовать внутреннее соединение, чтобы не потерять такие записи.
Иными словами:
ВНУТРЕННЕЕ СОЕДИНЕНИЕ от EKKO.INCO1 к TINCT.INCO1 приводит к потере записи, поскольку значения INCO1 от EKKO не существуют в TINCT.INCO1. в частности, пустое заданное значение.
В качестве обходного пути я мог бы объединить запись для значения пустого набора в TINCT в моем представлении вычисления измерения Списка значений, или я мог вычислить INCO1, чтобы изменить пустой набор на ноль (но это означает объединение в вычисляемом столбце, который Лучшая практика говорит, что не надо делать) Ни одно из них действительно мне нравится.
Итак, основная проблема в том, что у меня есть записи в EKKO.INCO1
, которых нет в его проверочной таблице TINCT
. Я хочу избежать использования левого соединения, потому что механизм HANA вернет все записи и затем уменьшит до значения «Свободный на борту», который я ищу, вместо того, чтобы ограничивать результаты от EKKO только теми, которые «Свободны на борту» для начала. с.
Опять же, если EKKO имеет 70000 записей, и только 7000 из них являются "Свободными на борту", запрос hana возвращает только 7000 записей. не все 70000. не вернуть все 70000, а затем в BO ограничить до 7000 я хочу. Для этого я думаю, что мне нужно использовать внутреннее соединение в соединении Star; однако, делая это, я теряю записи. Конечно, я могу не захотеть эти записи на данный момент; но, возможно, пользователь запросит те записи, которые не имеют описания TERM ... и что тогда?
Извините за мой бродячий.