У меня очень указанная проблема HANA / SQLScript. Мне нужно создать представление истории для каждого дня в форме расчета сценариев на основе таблицы с пробелами даты?
Я пробовал каждое перекрестное соединение с "_SYS_BI". "M_TIME_DIMENSION" и просто использовал функции.
По моему опыту, перекрестные соединения идеальны для кумулятивной суммы, но не для показа единственного значения.
HANA не позволяет использовать столбцы в качестве входных параметров для табличных функций.
Скалярные функции также нельзя использовать в режиме расчета. Я могу активировать это представление, но не могу прочитать данные из него. Даже если автономная функция работает нормально:
Таблица скидок делового партнера:
CREATE COLUMN TABLE "BP_DISCOUNT" ("BP_CODE" VARCHAR(50) NOT NULL ,
"DATE" DATE L ,
"DISCOUNT" DECIMAL(21,6);
insert into "BP_DISCOUNT" values('abc','20190101','0');
insert into "BP_DISCOUNT" values('abc','20190105','5');
insert into "BP_DISCOUNT" values('abc','20190110','10');
Моя функция, которую я хотел использовать вместо:
CREATE FUNCTION bp_discountF (BP_Code varchar(50), Date_D date)
RETURNS discount decimal(21,6)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER
AS
BEGIN
select "DISCOUNT" into DISCOUNT
from "BP_DISCOUNT" d
where
:BP_CODE = d."BP_CODE" and d."DATE"<= :DATE_D order by d."DATE" desc limit 1;
END;
Моя цель - создать представление, отображающее значения скидок для каждого возможного дня на основе самых последних значений.
Он должен быть в форме представления расчета по сценарию, чтобы присоединить его к более сложным представлениям отчета о продажах.
Ожидаемый результат - присоединение к нему в BP и дата документа:
...
'abc', '20190101', 0;
'abc', '20190102', 0;
'abc', '20190103', 0;
'abc', '20190104', 0;
'abc', '20190105', 5;
'abc', '20190106', 5;
'abc', '20190107', 5;
'abc', '20190108', 5;
'abc', '20190109', 5;
'abc', '20190110', 10;
'abc', '20190111', 10;
..