Rhys
New Contributor II

Hi Iav,

With sign I still get Correlated column bug, any thoughts?

CREATE FUNCTION IF NOT EXISTS rw_weekday_diff(start_date DATE, end_date DATE)

RETURNS INT

COMMENT 'Calculated days between two dates excluding weekend'

RETURN DATEDIFF(DAY, start_date, end_date) 

  - (DATEDIFF(WEEK, start_date, end_date) * 2)

  - (CASE WHEN dayofweek(start_date) = 1 THEN 1 ELSE 0 END) 

  + (CASE WHEN dayofweek(start_date) = 7 THEN 1 ELSE 0 END)

  - (SELECT COUNT(*) FROM bank_holidays AS h WHERE 

      sign(DATEDIFF(h.date, date_add(to_date(start_date), -1))) = 1 AND 

      sign(DATEDIFF(h.date, date_add(to_date(end_date), 1))) = -1);   

--   original where clause - (SELECT COUNT(*) FROM bank_holidays.uk_bank_holidays AS h WHERE h.date >= start_date AND h.date = end_date);