我正在嘗試使用查詢從每個用戶的訂閱日期起每 13 周(91 天)的范圍內呼叫一個函式。
我的用戶表如下所示:
USER | SUBSCRIBE_DATE
u1 | 2021-06-01
u2 | 2021-06-14
...
我正在處理這樣的查詢
SELECT
u.USER,
u.SUBSCRIBE_DATE as "Start date",
(
SELECT
u.SUBSCRIBE_DATE ( level - 1 ) * 91 as "fin"
from DUAL
connect by level <= (
(
( CURRENT_DATE - u.SUBSCRIBE_DATE ) 91
) / 91
)
) as "End date",
getfunction(u.user,"Start date","End date") as "Get function"
FROM User u
我想要這樣的結果:
USER | Start date | End date | Get function
u1 | 2021-06-01 | 2021-08-30 | X
u1 | 2021-08-31 | 2021-11-29 | X
...
u2 | 2021-06-14 | 2021-09-12 | X
u2 | 2021-09-13 | 2021-12-12 | X
...
我是不是走錯方向了?
謝謝
uj5u.com熱心網友回復:
該函式應該在內部查詢之外呼叫,因為此時列不存在。它們不存在于內部查詢中。
您不應將此列符號與空格一起使用,這只是一個建議。
在您的情況下,您需要使用sub-select. 我更改了列符號,避免了雙引號和空格。無論您getfunction做什么,它都必須在外部查詢中。
select
user,
Start_date ,
End_Date
getfunction(u.user,Start_date,End_date) as Get_function
from
(
SELECT
u.USER,
u.SUBSCRIBE_DATE as Start_date,
(
SELECT
u.SUBSCRIBE_DATE ( level - 1 ) * 91 as "fin"
from DUAL
connect by level <= (
(
( CURRENT_DATE - u.SUBSCRIBE_DATE ) 91
) / 91
)
) as End_date
FROM User u
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/346158.html
