Came up with something like this NOT sure if this is the correct way
but works for me
---------------- UPDATE WHEN CHISRSTMAS IS ON SUNDAY---------------------------
UPDATE CALENDAR_DATE_NEW
SET CORP_HOLIDAY_IND='Y'
WHERE CALENDAR_DATE IN (
SELECT DISTINCT K.CALENDAR_DATE
FROM
(SELECT CALENDAR_DATE ,DAY_IN_FISCAL_WEEK_DESC,CORP_HOLIDAY_IND
FROM CALENDAR_DATE_NEW cd
WHERE YEAR(CALENDAR_DATE)>=2012
AND DAY_IN_FISCAL_WEEK_DESC='SUNDAY'
AND CORP_HOLIDAY_IND='Y'
AND CONCAT(MONTH(CALENDAR_DATE),DAYOFMONTH(CALENDAR_DATE))=1225
UNION ALL
SELECT DATEADD(DAY,1,CALENDAR_DATE) AS CALENDAR_DATE ,DAY_IN_FISCAL_WEEK_DESC,CORP_HOLIDAY_IND
FROM CALENDAR_DATE_NEW cd
WHERE YEAR(CALENDAR_DATE)>=2012
AND DAY_IN_FISCAL_WEEK_DESC='SUNDAY'
AND CORP_HOLIDAY_IND='Y'
AND CONCAT(MONTH(CALENDAR_DATE),DAYOFMONTH(CALENDAR_DATE))=1225
UNION ALL
SELECT DATEADD(DAY,-1,CALENDAR_DATE) AS CALENDAR_DATE ,DAY_IN_FISCAL_WEEK_DESC,CORP_HOLIDAY_IND
FROM CALENDAR_DATE_NEW cd
WHERE YEAR(CALENDAR_DATE)>=2012
AND DAY_IN_FISCAL_WEEK_DESC='SUNDAY'
AND CORP_HOLIDAY_IND='Y'
AND CONCAT(MONTH(CALENDAR_DATE),DAYOFMONTH(CALENDAR_DATE))=1225
UNION ALL
SELECT DATEADD(DAY,-2,CALENDAR_DATE) AS CALENDAR_DATE ,DAY_IN_FISCAL_WEEK_DESC,CORP_HOLIDAY_IND
FROM CALENDAR_DATE_NEW cd
WHERE YEAR(CALENDAR_DATE)>=2012
AND DAY_IN_FISCAL_WEEK_DESC='SUNDAY'
AND CORP_HOLIDAY_IND='Y'
AND CONCAT(MONTH(CALENDAR_DATE),DAYOFMONTH(CALENDAR_DATE))=1225
)K
);
-----------------------------------------WHEN CHRISTMAS ON SATURDAY---------------------------------------------
UPDATE CALENDAR_DATE_NEW
SET CORP_HOLIDAY_IND='Y'
WHERE CALENDAR_DATE IN (
SELECT DISTINCT K.CALENDAR_DATE
FROM
(SELECT CALENDAR_DATE ,DAY_IN_FISCAL_WEEK_DESC,CORP_HOLIDAY_IND
FROM CALENDAR_DATE_NEW cd
WHERE YEAR(CALENDAR_DATE)>=2012
AND DAY_IN_FISCAL_WEEK_DESC='SATURDAY'
AND CORP_HOLIDAY_IND='Y'
AND CONCAT(MONTH(CALENDAR_DATE),DAYOFMONTH(CALENDAR_DATE))=1225
UNION ALL
SELECT DATEADD(DAY,1,CALENDAR_DATE) AS CALENDAR_DATE ,DAY_IN_FISCAL_WEEK_DESC,CORP_HOLIDAY_IND
FROM CALENDAR_DATE_NEW cd
WHERE YEAR(CALENDAR_DATE)>=2012
AND DAY_IN_FISCAL_WEEK_DESC='SATURDAY'
AND CORP_HOLIDAY_IND='Y'
AND CONCAT(MONTH(CALENDAR_DATE),DAYOFMONTH(CALENDAR_DATE))=1225
UNION ALL
SELECT DATEADD(DAY,-1,CALENDAR_DATE) AS CALENDAR_DATE ,DAY_IN_FISCAL_WEEK_DESC,CORP_HOLIDAY_IND
FROM CALENDAR_DATE_NEW cd
WHERE YEAR(CALENDAR_DATE)>=2012
AND DAY_IN_FISCAL_WEEK_DESC='SATURDAY'
AND CORP_HOLIDAY_IND='Y'
AND CONCAT(MONTH(CALENDAR_DATE),DAYOFMONTH(CALENDAR_DATE))=1225
UNION ALL
SELECT DATEADD(DAY,-2,CALENDAR_DATE) AS CALENDAR_DATE ,DAY_IN_FISCAL_WEEK_DESC,CORP_HOLIDAY_IND
FROM CALENDAR_DATE_NEW cd
WHERE YEAR(CALENDAR_DATE)>=2012
AND DAY_IN_FISCAL_WEEK_DESC='SATURDAY'
AND CORP_HOLIDAY_IND='Y'
AND CONCAT(MONTH(CALENDAR_DATE),DAYOFMONTH(CALENDAR_DATE))=1225
)K
);