Your derived table needs a name.
SELECT
Subscription_Id
, Wrls_Prod_Eff_Dt
, Wrls_Prod_Cd
, Wrls_Prod_Ds
FROM
(
SELECT A.*, ROW_NUMBER () OVER (PARTITION BY Subscription_Id ORDER BY Wrls_Prod_Eff_Dt DESC) AS RANK_ID
FROM DW_NLIP_PRV_PLNS A
) AA /* Here is the name */
WHERE RANK_ID = 1;
Your derived table needs a name.