CROSS Apply equivalent in Redshift SQL

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

Tagged: