RETAIL_DAY_EXISTS
Purpose
The RETAIL_DAY_EXISTS function determines whether the dtexpr exists in the retail calendar, returning a boolean TRUE if it does exist and FALSE if it does not. When is_restated (which is mandatory for this function) is RESTATED, the function will return FALSE for any days that fall in the week removed from a restated retail year and TRUE for other days. When is_restated is NOT RESTATED, the function will always return TRUE. This function is because all of the other functions will raise an error when is_restated is RESTATED and the input is one of the days not in the calendar. The RETAIL_DAY_EXISTS function allows a user to either filter out such rows in a WHERE clause, or to protect calls to the other functions with a CASE expression.
Example 1: Filter Invalid Rows Using WHERE Clause
In the following example, RETAIL_DAY_EXISTS allows the user to filter out invalid rows using the WHERE clause :
SELECT RETAIL_MONTH(order_date, ‘DEFAULT’, ‘RESTATED’) month, SUM(sales) sales FROM fact WHERE RETAIL_DAY_EXISTS(order_date, ‘RESTATED’) = TRUE GROUP BY ALL ORDER BY 1; MONTH SALES ---------- ----- FEB-RY2023 123
Example 2: Protect Calls Using CASE Expression
SELECT CASE WHEN RETAIL_DAY_EXISTS(order_date, ‘RESTATED’) = TRUE THEN RETAIL_MONTH(order_date, ‘DEFAULT’, ‘RESTATED’) ELSE ‘#INVALID_DAY#’ END month, SUM(sales) sales FROM fact GROUP BY ALL ORDER BY 1; MONTH SALES ------------- ----- FEB-RY2023 123 #INVALID_DAY# 456
