[oracle] sql modeling [fixed]
все ясно. нужен rules automatic order
если не секрет, ты model в реальном продакшн коде юзаешь или просто для интереса?
ну т.е. отчет который приведен сильно упрощен, но и уже его нельзя сделать без модели.
Да? вроде да.
кстати ты ж в банке работаешь. 125 форма короче.
вопрос скорее к тому, что модель никто почти не знает, поэтому если в штате и будешь когда-либо делегировать, то юзать её опасно, но если по консалтингу, то конечно надо юзать как можно больше
Оставить комментарий
Teteshnik
подскажите плиз где ошибка. хочется чтобыy[i]=0.05 * x[i], если 0.05 * x[i]<1000, то y[i]=1000
x[i+1]=x[i]-y[i], где i>=1
короче, рассчеты не важны. главное что итерация чо-то больше 2 у меня не идет.
[code=sql]
SELECT * FROM
(
SELECT 1 C, 102400 x, 512 y FROM dual
UNION ALL
SELECT 2 C, NULL x, 0 y FROM dual
UNION ALL
SELECT 3 C, NULL x, 0 y FROM dual
UNION ALL
SELECT 4 C, NULL x, 0 y FROM dual
UNION ALL
SELECT 5 C, NULL x, 0 y FROM dual
)
MODEL --RETURN UPDATED ROWS
dimension BY ( C )
measures (X, Y)
rules (
X[1]=X[1],
Y[1]=CASE
WHEN Y[1]>=1000 THEN Y[1]
WHEN Y[1]=0 AND 0.05*X[1]>=1000 THEN 0.05*X[1]
ELSE 1000
END
,
X[C>1]=X[CV(C)-1]-Y[CV(C)-1],
Y[C>1]=CASE
WHEN (X[CV(C)-1]-Y[CV(C)-1])*0.05>=1000 THEN (X[CV(C)-1]-Y[CV(C)-1])*0.05
ELSE 1000
END
)
[/code]