I'm new to teradta and when I'm running the following SQL:
SysCalendar.Calendar is a view, the column CALDATE comes from the base table.
Your problem is the (IHMO stupid) ANSI Interval calculation, e.g. DATE '2012-02-29' - INTERVAL '1' YEAR results in 2011-02-29, which simply doesn't exist.
Nobody ever uses Intervals for months or years as there's good ol' ADD_MONTHS :-)