1
我的源數據是這樣的 - 看到圖像here如何使用Oracle基於對循環case語句
我現在想基於OFFSET_PERIOD_FROM爲PORTFOLIO_GROUP,PORTFOLIO_REGION,LIMIT_NAME的每個唯一組合來計算START_DATE_ID 。對於這個我在SELECT語句中使用這個case語句
CASE
OFFSET_PERIOD_FROM = 0 THEN TRUNC(SYSDATE, 'Q')
OFFSET_PERIOD_FROM = 1 THEN ADD_MONTHS(TRUNC(SYSDATE, 'Q'),3)
OFFSET_PERIOD_FROM = 2 THEN ADD_MONTHS(TRUNC(SYSDATE, 'Q'),6) -- 6 is multiple of 3 and so on
OFFSET_PERIOD_FROM = 3 THEN ADD_MONTHS(TRUNC(SYSDATE, 'Q'),9)
OFFSET_PERIOD_FROM = 4 THEN ADD_MONTHS(TRUNC(SYSDATE, 'Q'),12)
OFFSET_PERIOD_FROM = 5 THEN ADD_MONTHS(TRUNC(SYSDATE, 'Q'),15)
END AS START_DATE_ID
我現在的問題是OFFSET_PERIOD_FROM價值已不限於5 PORTFOLIO_GROUP,PORTFOLIO_REGION,LIMIT_NAME的每個組合。
那麼如何運行像0..MAX(OFFSET_PERIOD_FROM)爲PORTFOLIO_GROUP,PORTFOLIO_REGION的每個組合這種情況下發言,LIMIT_NAME
像'ADD_MONTHS(TRUNC(SYSDATE, 'Q'),OFFSET_PERIOD_FROM * 3)'? (另) –