Hi All,
I am trying to find the equivalent of CROSS APPLY in the query below. Can you please help..
WITH CTE AS
(
SELECT *,ROW_NUMBER()OVER(PARTITION BY "ORDER","ORD_DATE" ORDER BY "DATE_VALUE" DESC)AS RNum
FROM input
),CTE2 AS
(
SELECT "ORDER","ORDDATE","PRMDATE","DATE_VALUE" AS recdate,
DATE_SUB("DATE_VALUE", INTERVAL 7 DAY) as recdate1,
DATE_SUB("DATE_VALUE", INTERVAL 14 DAY) as recdate2,
DATE_SUB("DATE_VALUE", INTERVAL 28 DAY) as recdate3
FROM CTE
WHERE RNum=1
)
SELECT C.ORDER,C.ORDDATE,C.PRMDATE,C.recdate,C.recdate1,C.recdate2,C.recdate3
,C1.PRM_DATE AS [prmdate-7],C2.PRM_DATE AS [prmdate-14],C3.PRM_DATE AS [prmdate-28]
FROM CTE2 C
CROSS APPLY(SELECT "PRM_DATE" FROM input WHERE C.SLS_ORD="SLS_ORD" AND C.ORD_DATE="ORD_DATE" AND C.recdate1="DATE_VALUE")C1
CROSS APPLY(SELECT "PRM_DATE" FROM input WHERE C.SLS_ORD="SLS_ORD" AND C.ORD_DATE="ORD_DATE" AND C.recdate2="DATE_VALUE")C2
CROSS APPLY(SELECT "PRM_DATE" FROM input WHERE C.SLS_ORD="SLS_ORD" AND C.ORD_DATE="ORD_DATE" AND C.recdate3="DATE_VALUE")C3
Following is the context for the same
I am trying to pull the current promise date and the promise date 7 days ago, promise date 14 days ago, promise date 28 days ago with respect to the field date_value...The field prmdate is the promisedate
The promise date corresponding to the latest date_value is the current promise date...
The recdate is the latest date_value, rec1date is date_value-7, rec2date is date_value-14, rec3date is date_value-28
Input table
Output table
Attached the data