0% found this document useful (0 votes)
46 views10 pages

Snowflake Script For STG - DIM

The document describes creating a DIM_DATE table with various date dimension attributes and populating it with date data from 1990 to 2030. It also creates temporary tables for New Zealand and Australian public holidays and inserts annual holiday records for those countries over the same time period.

Uploaded by

Apoorv Saxena
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views10 pages

Snowflake Script For STG - DIM

The document describes creating a DIM_DATE table with various date dimension attributes and populating it with date data from 1990 to 2030. It also creates temporary tables for New Zealand and Australian public holidays and inserts annual holiday records for those countries over the same time period.

Uploaded by

Apoorv Saxena
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 10

// CREATE DIM_DATE table

create or replace TABLE DIM_DATE (


DATE_KEY NUMBER(38,0),
CALENDAR_DATE DATE,
CALENDAR_DATE_STR VARCHAR(50),
CALENDAR_DATE_ALT VARCHAR(50),
CALENDAR_YEAR NUMBER(38,0),
CALENDAR_YEAR_DESC VARCHAR(50),
CALENDAR_QUARTER NUMBER(38,0),
CALENDAR_QUARTER_DESC VARCHAR(50),
CALENDAR_QUARTER_YEAR NUMBER(38,0),
MONTH_NO_OF_YEAR NUMBER(38,0),
MONTH_YEAR NUMBER(38,0),
MONTH_NAME VARCHAR(50),
MONTH_YEAR_DESC VARCHAR(50),
MONTH_YEAR_ALT VARCHAR(50),
DAY_NO_OF_MONTH NUMBER(38,0),
NO_OF_DAYS_IN_MONTH NUMBER(38,0),
DAY_NO_OF_YEAR NUMBER(38,0),
WEEK_NO_YEAR NUMBER(38,0),
WEEK_YEAR NUMBER(38,0),
ISO_WEEK_NO_OF_YEAR NUMBER(38,0),
ISO_WEEK_YEAR NUMBER(38,0),
WEEK_DAY NUMBER(38,0),
WEEK_DAY_NAME VARCHAR(50),
NZ_FISCAL_YEAR NUMBER(38,0),
NZ_FISCAL_YEAR_DESC VARCHAR(50),
NZ_FISCAL_QUARTER NUMBER(38,0),
NZ_FISCAL_QUARTER_YEAR NUMBER(38,0),
NZ_FISCAL_QUARTER_DESC VARCHAR(50),
NZ_FISCAL_MONTH NUMBER(38,0),
NZ_FISCAL_MONTH_YEAR NUMBER(38,0),
NZ_FISCAL_MONTH_DESC VARCHAR(50),
AU_FISCAL_YEAR NUMBER(38,0),
AU_FISCAL_YEAR_DESC VARCHAR(50),
AU_FISCAL_QUARTER NUMBER(38,0),
AU_FISCAL_QUARTER_YEAR NUMBER(38,0),
AU_FISCAL_QUARTER_DESC VARCHAR(50),
AU_FISCAL_MONTH NUMBER(38,0),
AU_FISCAL_MONTH_YEAR NUMBER(38,0),
AU_FISCAL_MONTH_DESC VARCHAR(50),
IS_WEEK_DAY_FLAG NUMBER(38,0),
IS_WEEK_DAY_DESC VARCHAR(50),
IS_NZ_PUBLIC_HOLIDAY_FLAG NUMBER(38,0),
IS_NZ_PUBLIC_HOLIDAY_DESC VARCHAR(50),
NZ_PUBLIC_HOLIDAY_FULL_DESC VARCHAR(50),
IS_AU_PUBLIC_HOLIDAY_FLAG NUMBER(38,0),
IS_AU_PUBLIC_HOLIDAY_DESC VARCHAR(50),
AU_PUBLIC_HOLIDAY_FULL_DESC VARCHAR(50),
CURRENT_YEAR NUMBER(38,0),
CURRENT_MONTH NUMBER(38,0),
CURRENT_DAY NUMBER(38,0)
);

//Set the start date and number of years to produce


SET START_DATE = '1990-01-01' ; //Start date
SET NUMBER_DAYS= (Select TRUNC(40 * 365.25)) ; //Calculate number of days (40 yrs
here, adjust to your need! )
// Show variables; //Verify the set values in variables
//Set the following parameters to force ISO
alter session set week_start=1,week_of_year_policy=1;

Create or Replace TEMPORARY table NZPUBLIC_HOLIDAYS (


DATE_KEY INT,
DESCRIPTION VARCHAR(50),
CONSTRAINT UNIQUE_DATE_KEY UNIQUE (DATE_KEY) ENFORCED
);
Create or Replace TEMPORARY table AUPUBLIC_HOLIDAYS (
DATE_KEY INT,
DESCRIPTION VARCHAR(50),
CONSTRAINT UNIQUE_DATE_KEY UNIQUE (DATE_KEY) ENFORCED
);
-- insert annual public holidays
-- 1990-2030 NZ holidays
insert into NZPUBLIC_HOLIDAYS(DATE_KEY,Description)
values
// 1990
(19900101,'New Year''s Day'), (19900102,'Day after New Year''s Day'),
(19900206,'Waitangi Day'), (19900413,'Good Friday'), (19900416,'Easter Monday'),
(19900425,'ANZAC Day'),
(19900604,'Queen''s Birthday'), (19901022,'Labour Day'), (19901225,'Christmas
Day'), (19901226,'Boxing Day'),
// 1991
(19910101,'New Year''s Day'), (19910102,'Day after New Year''s Day'),
(19910206,'Waitangi Day'), (19910329,'Good Friday'), (19910401,'Easter Monday'),
(19910425,'ANZAC Day'),
(19910603,'Queen''s Birthday'), (19911028,'Labour Day'), (19911225,'Christmas
Day'), (19911226,'Boxing Day'),
// 1992
(19920101,'New Year''s Day'), (19920102,'Day after New Year''s Day'),
(19920206,'Waitangi Day'), (19920417,'Good Friday'), (19920420,'Easter Monday'),
(19920425,'ANZAC Day'),
(19920601,'Queen''s Birthday'), (19921026,'Labour Day'), (19921225,'Christmas
Day'), (19921228,'Boxing Day'),
// 1993
(19930101,'New Year''s Day'), (19930104,'Day after New Year''s Day'),
(19930206,'Waitangi Day'), (19930409,'Good Friday'), (19930412,'Easter Monday'),
(19930425,'ANZAC Day'),
(19930607,'Queen''s Birthday'), (19931025,'Labour Day'), (19931227,'Christmas
Day'), (19931228,'Boxing Day'),
// 1994
(19940103,'New Year''s Day'), (19940104,'Day after New Year''s Day'),
(19940206,'Waitangi Day'), (19940401,'Good Friday'), (19940404,'Easter Monday'),
(19940425,'ANZAC Day'),
(19940606,'Queen''s Birthday'), (19941024,'Labour Day'), (19941226,'Christmas
Day'), (19941227,'Boxing Day'),
// 1995
(19950102,'New Year''s Day'), (19950103,'Day after New Year''s Day'),
(19950206,'Waitangi Day'), (19950414,'Good Friday'), (19950417,'Easter Monday'),
(19950425,'ANZAC Day'),
(19950605,'Queen''s Birthday'), (19951023,'Labour Day'), (19951225,'Christmas
Day'), (19951226,'Boxing Day'),
// 1996
(19960101,'New Year''s Day'), (19960102,'Day after New Year''s Day'),
(19960206,'Waitangi Day'), (19960405,'Good Friday'), (19960408,'Easter Monday'),
(19960425,'ANZAC Day'),
(19960603,'Queen''s Birthday'), (19961028,'Labour Day'), (19961225,'Christmas
Day'), (19961226,'Boxing Day'),
// 1997
(19970101,'New Year''s Day'), (19970102,'Day after New Year''s Day'),
(19970206,'Waitangi Day'), (19970328,'Good Friday'), (19970331,'Easter Monday'),
(19970425,'ANZAC Day'),
(19970602,'Queen''s Birthday'), (19971027,'Labour Day'), (19971225,'Christmas
Day'), (19971226,'Boxing Day'),
// 1998
(19980101,'New Year''s Day'), (19980102,'Day after New Year''s Day'),
(19980206,'Waitangi Day'), (19980410,'Good Friday'), (19980413,'Easter Monday'),
(19980425,'ANZAC Day'),
(19980601,'Queen''s Birthday'), (19981026,'Labour Day'), (19981225,'Christmas
Day'), (19981228,'Boxing Day'),
// 1999
(19990101,'New Year''s Day'), (19990104,'Day after New Year''s Day'),
(19990206,'Waitangi Day'), (19990402,'Good Friday'), (19990405,'Easter Monday'),
(19990425,'ANZAC Day'),
(19990607,'Queen''s Birthday'), (19991025,'Labour Day'), (19991227,'Christmas
Day'), (19991228,'Boxing Day'),
// 2000
(20000103,'New Year''s Day'), (20000104,'Day after New Year''s Day'),
(20000206,'Waitangi Day'), (20000421,'Good Friday'), (20000424,'Easter Monday'),
(20000425,'ANZAC Day'),
(20000605,'Queen''s Birthday'), (20001023,'Labour Day'), (20001225,'Christmas
Day'), (20001226,'Boxing Day'),

// 2001
(20010101,'New Year''s Day'), (20010102,'Day after New Year''s Day'),
(20010206,'Waitangi Day'), (20010413,'Good Friday'), (20010416,'Easter Monday'),
(20010425,'ANZAC Day'),
(20010604,'Queen''s Birthday'), (20011022,'Labour Day'), (20011225,'Christmas
Day'), (20011226,'Boxing Day'),
// 2002
(20020101,'New Year''s Day'), (20020102,'Day after New Year''s Day'),
(20020206,'Waitangi Day'), (20020329,'Good Friday'), (20020401,'Easter Monday'),
(20020425,'ANZAC Day'),
(20020603,'Queen''s Birthday'), (20021028,'Labour Day'), (20021225,'Christmas
Day'), (20021226,'Boxing Day'),
// 2003
(20030101,'New Year''s Day'), (20030102,'Day after New Year''s Day'),
(20030206,'Waitangi Day'), (20030418,'Good Friday'), (20030421,'Easter Monday'),
(20030425,'ANZAC Day'),
(20030602,'Queen''s Birthday'), (20031027,'Labour Day'), (20031225,'Christmas
Day'), (20031226,'Boxing Day'),
// 2004
(20040101,'New Year''s Day'), (20040102,'Day after New Year''s Day'),
(20040206,'Waitangi Day'), (20040409,'Good Friday'), (20040412,'Easter Monday'),
(20040425,'ANZAC Day'),
(20040607,'Queen''s Birthday'), (20041025,'Labour Day'), (20041227,'Christmas
Day'), (20041228,'Boxing Day'),
// 2005
(20050103,'New Year''s Day'), (20050104,'Day after New Year''s Day'),
(20050206,'Waitangi Day'), (20050325,'Good Friday'), (20050328,'Easter Monday'),
(20050425,'ANZAC Day'),
(20050606,'Queen''s Birthday'), (20051024,'Labour Day'), (20051226,'Christmas
Day'), (20051227,'Boxing Day'),
// 2006
(20060102,'New Year''s Day'), (20060103,'Day after New Year''s Day'),
(20060206,'Waitangi Day'), (20060414,'Good Friday'), (20060417,'Easter Monday'),
(20060425,'ANZAC Day'),
(20060605,'Queen''s Birthday'), (20061023,'Labour Day'), (20061225,'Christmas
Day'), (20061226,'Boxing Day'),
// 2007
(20070101,'New Year''s Day'), (20070102,'Day after New Year''s Day'),
(20070206,'Waitangi Day'), (20000406,'Good Friday'), (20070409,'Easter Monday'),
(20070425,'ANZAC Day'),
(20070604,'Queen''s Birthday'), (20071022,'Labour Day'), (20071225,'Christmas
Day'), (20071226,'Boxing Day'),
// 2008
(20080101,'New Year''s Day'), (20080102,'Day after New Year''s Day'),
(20080206,'Waitangi Day'), (20080321,'Good Friday'), (20080324,'Easter Monday'),
(20080425,'ANZAC Day'),
(20080602,'Queen''s Birthday'), (20081027,'Labour Day'), (20081225,'Christmas
Day'), (20081226,'Boxing Day'),
// 2009
(20090101,'New Year''s Day'), (20090102,'Day after New Year''s Day'),
(20090206,'Waitangi Day'), (20090410,'Good Friday'), (20090413,'Easter Monday'),
(20090425,'ANZAC Day'),
(20090601,'Queen''s Birthday'), (20091026,'Labour Day'), (20091225,'Christmas
Day'), (20091228,'Boxing Day'),
// 2010
(20100101,'New Year''s Day'), (20100104,'Day after New Year''s Day'),
(20100206,'Waitangi Day'), (20100402,'Good Friday'), (20100405,'Easter Monday'),
(20100425,'ANZAC Day'),
(20100607,'Queen''s Birthday'), (20101025,'Labour Day'), (20101227,'Christmas
Day'), (20101228,'Boxing Day'),

// 2011
(20110103,'New Year''s Day'), (20110104,'Day after New Year''s Day'),
(20110206,'Waitangi Day'), (20110422,'Good Friday'), (20110425,'Easter Monday /
ANZAC Day'),
(20110606,'Queen''s Birthday'), (20111024,'Labour Day'), (20111226,'Christmas
Day'), (20111227,'Boxing Day'),
// 2012
(20120102,'New Year''s Day'), (20120103,'Day after New Year''s Day'),
(20120206,'Waitangi Day'), (20120406,'Good Friday'), (20120409,'Easter Monday'),
(20120425,'ANZAC Day'),
(20120604,'Queen''s Birthday'), (20121022,'Labour Day'), (20121225,'Christmas
Day'), (20121226,'Boxing Day'),
// 2013
(20130101,'New Year''s Day'), (20130102,'Day after New Year''s Day'),
(20130206,'Waitangi Day'), (20130329,'Good Friday'), (20130401,'Easter Monday'),
(20130425,'ANZAC Day'),
(20130603,'Queen''s Birthday'), (20131028,'Labour Day'), (20131225,'Christmas
Day'), (20131226,'Boxing Day'),
// 2014
(20140101,'New Year''s Day'), (20140102,'Day after New Year''s Day'),
(20140206,'Waitangi Day'), (20140418,'Good Friday'), (20140421,'Easter Monday'),
(20140425,'ANZAC Day'),
(20140602,'Queen''s Birthday'), (20141027,'Labour Day'), (20141225,'Christmas
Day'), (20141226,'Boxing Day'),
// 2015
(20150101,'New Year''s Day'), (20150102,'Day after New Year''s Day'),
(20150206,'Waitangi Day'), (20150403,'Good Friday'), (20150406,'Easter Monday'),
(20150427,'ANZAC Day'),
(20150601,'Queen''s Birthday'), (20151026,'Labour Day'), (20151225,'Christmas
Day'), (20151228,'Boxing Day'),
// 2016
(20160101,'New Year''s Day'), (20160104,'Day after New Year''s Day'),
(20160208,'Waitangi Day'), (20160325,'Good Friday'), (20160328,'Easter Monday'),
(20160425,'ANZAC Day'),
(20160606,'Queen''s Birthday'), (20161024,'Labour Day'), (20161226,'Christmas
Day'), (20161227,'Boxing Day'),
// 2017
(20170102,'New Year''s Day'), (20170103,'Day after New Year''s Day'),
(20170206,'Waitangi Day'), (20170414,'Good Friday'), (20170417,'Easter Monday'),
(20170425,'ANZAC Day'),
(20170605,'Queen''s Birthday'), (20171023,'Labour Day'), (20171225,'Christmas
Day'), (20171226,'Boxing Day'),
// 2018
(20180101,'New Year''s Day'), (20180102,'Day after New Year''s Day'),
(20180206,'Waitangi Day'), (20180330,'Good Friday'), (20180402,'Easter Monday'),
(20180425,'ANZAC Day'),
(20180604,'Queen''s Birthday'), (20181022,'Labour Day'), (20181225,'Christmas
Day'), (20181226,'Boxing Day'),
// 2019
(20190101,'New Year''s Day'), (20190102,'Day after New Year''s Day'),
(20190206,'Waitangi Day'), (20190419,'Good Friday'), (20190422,'Easter Monday'),
(20190425,'ANZAC Day'),
(20190603,'Queen''s Birthday'), (20191028,'Labour Day'), (20191225,'Christmas
Day'), (20191226,'Boxing Day'),
// 2020
(20200101,'New Year''s Day'), (20200102,'Day after New Year''s Day'),
(20200206,'Waitangi Day'), (20200410,'Good Friday'), (20200413,'Easter Monday'),
(20200427,'ANZAC Day'),
(20200601,'Queen''s Birthday'), (20201026,'Labour Day'), (20201225,'Christmas
Day'), (20201228,'Boxing Day'),

// 2021
(20210101,'New Year''s Day'), (20210104,'Day after New Year''s Day'),
(20210208,'Waitangi Day'), (20210402,'Good Friday'), (20210405,'Easter Monday'),
(20210426,'ANZAC Day'),
(20210607,'Queen''s Birthday'), (20211025,'Labour Day'), (20211227,'Christmas
Day'), (20211228,'Boxing Day'),
// 2022
(20220103,'New Year''s Day'), (20220104,'Day after New Year''s Day'),
(20220207,'Waitangi Day'), (20220415,'Good Friday'), (20220418,'Easter Monday'),
(20220425,'ANZAC Day'),
(20220606,'Queen''s Birthday'), (20221024,'Labour Day'), (20221226,'Christmas
Day'), (20221227,'Boxing Day'),
// 2023
(20230102,'New Year''s Day'), (20230103,'Day after New Year''s Day'),
(20230206,'Waitangi Day'), (20230407,'Good Friday'), (20230410,'Easter Monday'),
(20230425,'ANZAC Day'),
(20230605,'Queen''s Birthday'), (20231023,'Labour Day'), (20231225,'Christmas
Day'), (20231226,'Boxing Day'),
// 2024
(20240101,'New Year''s Day'), (20240102,'Day after New Year''s Day'),
(20240206,'Waitangi Day'), (20240329,'Good Friday'), (20240401,'Easter Monday'),
(20240425,'ANZAC Day'),
(20240603,'Queen''s Birthday'), (20241028,'Labour Day'), (20241225,'Christmas
Day'), (20241226,'Boxing Day'),
// 2025
(20250101,'New Year''s Day'), (20250102,'Day after New Year''s Day'),
(20250206,'Waitangi Day'), (20250418,'Good Friday'), (20250421,'Easter Monday'),
(20250425,'ANZAC Day'),
(20250602,'Queen''s Birthday'), (20251027,'Labour Day'), (20251225,'Christmas
Day'), (20251226,'Boxing Day'),
// 2026
(20260101,'New Year''s Day'), (20260102,'Day after New Year''s Day'),
(20260206,'Waitangi Day'), (20260403,'Good Friday'), (20260406,'Easter Monday'),
(20260427,'ANZAC Day'),
(20260601,'Queen''s Birthday'), (20261026,'Labour Day'), (20261225,'Christmas
Day'), (20261228,'Boxing Day'),
// 2027
(20270101,'New Year''s Day'), (20270104,'Day after New Year''s Day'),
(20270208,'Waitangi Day'), (20270326,'Good Friday'), (20270329,'Easter Monday'),
(20270426,'ANZAC Day'),
(20270607,'Queen''s Birthday'), (20271025,'Labour Day'), (20271227,'Christmas
Day'), (20271228,'Boxing Day'),
// 2028
(20280103,'New Year''s Day'), (20280104,'Day after New Year''s Day'),
(20280207,'Waitangi Day'), (20280414,'Good Friday'), (20280417,'Easter Monday'),
(20280425,'ANZAC Day'),
(20280605,'Queen''s Birthday'), (20281023,'Labour Day'), (20281225,'Christmas
Day'), (20281226,'Boxing Day'),
// 2029
(20290101,'New Year''s Day'), (20290102,'Day after New Year''s Day'),
(20290206,'Waitangi Day'), (20290330,'Good Friday'), (20290402,'Easter Monday'),
(20290425,'ANZAC Day'),
(20290604,'Queen''s Birthday'), (20291022,'Labour Day'), (20291225,'Christmas
Day'), (20291226,'Boxing Day'),
// 2030
(20300101,'New Year''s Day'), (20300102,'Day after New Year''s Day'),
(20300206,'Waitangi Day'), (20300419,'Good Friday'), (20300422,'Easter Monday'),
(20300425,'ANZAC Day'),
(20300603,'Queen''s Birthday'), (20301028,'Labour Day'), (20301225,'Christmas
Day'), (20301226,'Boxing Day');

// Testing the data in NZPUBLIC_HOLIDAYS


/*
Select *
from NZPUBLIC_HOLIDAYS
order by 1;
Select Count(*) as Total_count, Description
from NZPUBLIC_HOLIDAYS
GROUP BY Description;
*/
-- 2013-2014 AU ACT holidays
insert into AUPUBLIC_HOLIDAYS(DATE_KEY,Description)
values
// 2013
(20130101,'New Year''s Day'), (20130128,'Australia Day'), (20130311,'Canberra
Day'), (20130329,'Good Friday'), (20130330,'Easter Saturday'), (20130401,'Easter
Monday'), (20130425,'ANZAC Day'),
(20130610,'Queen''s Birthday'), (20130930,'Family & Community Day'),
(20131007,'Labour Day'), (20131225,'Christmas Day'), (20131226,'Boxing Day'),
// 2014
(20140101,'New Year''s Day'), (20140127,'Australia Day'), (20140310,'Canberra
Day'), (20140418,'Good Friday'), (20140419,'Easter Saturday'), (20140421,'Easter
Monday'), (20140425,'ANZAC Day'),
(20140609,'Queen''s Birthday'), (20140929,'Family & Community Day'),
(20141006,'Labour Day'), (20141225,'Christmas Day'), (20141226,'Boxing Day');

INSERT INTO DIM_DATE


( DATE_KEY
,CALENDAR_DATE
,CALENDAR_DATE_STR
,CALENDAR_DATE_ALT
,CALENDAR_YEAR
,CALENDAR_YEAR_DESC
,CALENDAR_QUARTER
,CALENDAR_QUARTER_DESC
,CALENDAR_QUARTER_YEAR
,MONTH_NO_OF_YEAR
,MONTH_YEAR
,MONTH_NAME
,MONTH_YEAR_DESC
,MONTH_YEAR_ALT
,DAY_NO_OF_MONTH
,NO_OF_DAYS_IN_MONTH
,DAY_NO_OF_YEAR
,WEEK_NO_YEAR
,WEEK_YEAR
,ISO_WEEK_NO_OF_YEAR
,ISO_WEEK_YEAR
,WEEK_DAY
,WEEK_DAY_NAME
,NZ_FISCAL_YEAR
,NZ_FISCAL_YEAR_DESC
,NZ_FISCAL_QUARTER
,NZ_FISCAL_QUARTER_YEAR
,NZ_FISCAL_QUARTER_DESC
,NZ_FISCAL_MONTH
,NZ_FISCAL_MONTH_YEAR
,NZ_FISCAL_MONTH_DESC
,AU_FISCAL_YEAR
,AU_FISCAL_YEAR_DESC
,AU_FISCAL_QUARTER
,AU_FISCAL_QUARTER_YEAR
,AU_FISCAL_QUARTER_DESC
,AU_FISCAL_MONTH
,AU_FISCAL_MONTH_YEAR
,AU_FISCAL_MONTH_DESC
,IS_WEEK_DAY_FLAG
,IS_WEEK_DAY_DESC
,IS_NZ_PUBLIC_HOLIDAY_FLAG
,IS_NZ_PUBLIC_HOLIDAY_DESC
,NZ_PUBLIC_HOLIDAY_FULL_DESC
,IS_AU_PUBLIC_HOLIDAY_FLAG
,IS_AU_PUBLIC_HOLIDAY_DESC
,AU_PUBLIC_HOLIDAY_FULL_DESC
,CURRENT_YEAR
,CURRENT_MONTH
,CURRENT_DAY
)

WITH DATE_RANGE AS (
//Generates the date records per number of days required
// note: used row_number to enforce producing gap free result of the sequence
and the dateadd just to make sure the start_date is included in the resultset
select DATEADD(DAY,(row_number() over (order by seq4()) -1),$START_DATE) AS
START_DATE
from table(generator(rowcount => $NUMBER_DAYS))
)
SELECT
TO_CHAR(START_DATE,'YYYYMMDD') AS DATE_KEY
,TO_CHAR(START_DATE,'YYYY-MM-DD') AS
CALENDAR_DATE
,TO_CHAR(START_DATE,'DD-MON-YY') AS
CALENDAR_DATE_STR
,TO_CHAR(START_DATE,'DD/MM/YYYY') AS
CALENDAR_DATE_ALT
,YEAR(START_DATE) AS
CALENDAR_YEAR
,'CY '||YEAR(START_DATE) AS
CALENDAR_YEAR_DESC
,QUARTER(START_DATE) AS
CALENDAR_QUARTER
,'QTR '||QUARTER(START_DATE) AS
CALENDAR_QUARTER_DESC
,YEAR(START_DATE)||QUARTER(START_DATE) AS
CALENDAR_QUARTER_YEAR
,MONTH(START_DATE) AS
MONTH_NO_OF_YEAR
,YEAR(START_DATE)||LPAD(MONTH(START_DATE),2,'0') AS MONTH_YEAR
,TO_CHAR(START_DATE,'MMMM') AS MONTH_NAME
,TO_CHAR(START_DATE,'MON-YY') AS
MONTH_YEAR_DESC
,TO_CHAR(START_DATE,'MON-YY') AS
MONTH_YEAR_ALT
,DAYOFMONTH(START_DATE) AS
DAY_NO_OF_MONTH
,DAYOFMONTH(LAST_DAY(START_DATE,'month')) AS
NO_OF_DAYS_IN_MONTH
,DAYOFYEAR(START_DATE) AS
DAY_NO_OF_YEAR
,WEEKOFYEAR(START_DATE) AS WEEK_NO_YEAR
,YEAR(START_DATE)||LPAD(WEEKOFYEAR(START_DATE),2,'0') AS WEEK_YEAR
,WEEKISO(START_DATE) AS
ISO_WEEK_NO_OF_YEAR
,YEAR(START_DATE)||LPAD(WEEKISO(START_DATE),2,'0') AS
ISO_WEEK_YEAR
,DAYOFWEEK(START_DATE) AS WEEK_DAY
,DECODE(DAYNAME(START_DATE),
'Mon','Monday','Tue','Tuesday',
'Wed','Wednesday','Thu','Thursday',
'Fri','Friday','Sat','Saturday',
'Sun','Sunday') AS
WEEK_DAY_NAME

,YEAR(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9)) AS
NZ_FISCAL_YEAR
,'FY '||YEAR(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9)) AS
NZ_FISCAL_YEAR_DESC
,QUARTER(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9)) AS
NZ_FISCAL_QUARTER
,YEAR(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9))||
QUARTER(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9)) AS
NZ_FISCAL_QUARTER_YEAR
,'QTR '||QUARTER(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9)) AS
NZ_FISCAL_QUARTER_DESC
,MONTH(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9)) AS
NZ_FISCAL_MONTH
,YEAR(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9))||
LPAD(MONTH(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9)),2,'0') AS
NZ_FISCAL_MONTH_YEAR
,'Month '||MONTH(ADD_MONTHS(DATE_TRUNC('month',START_DATE),9)) AS
NZ_FISCAL_MONTH_DESC

,YEAR(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6)) AS
AU_FISCAL_YEAR
,'FY '||YEAR(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6)) AS
AU_FISCAL_YEAR_DESC
,QUARTER(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6)) AS
AU_FISCAL_QUARTER
,YEAR(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6))||
QUARTER(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6)) AS
AU_FISCAL_QUARTER_YEAR
,'QTR '||QUARTER(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6)) AS
AU_FISCAL_QUARTER_DESC
,MONTH(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6)) AS
AU_FISCAL_MONTH
,YEAR(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6))||
LPAD(MONTH(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6)),2,'0') AS
AU_FISCAL_MONTH_YEAR
,'Month '||MONTH(ADD_MONTHS(DATE_TRUNC('month',START_DATE),6)) AS
AU_FISCAL_MONTH_DESC
,IFF(DAYOFWEEK(START_DATE) between 1 and 5,1,0) AS
IS_WEEK_DAY_FLAG
,IFF(DAYOFWEEK(START_DATE) between 1 and 5,'Weekday','Weekend') AS
IS_WEEK_DAY_DESC
,IFF(NZPH.Description is NULL,0,1) AS
IS_NZ_PUBLIC_HOLIDAY_FLAG
,IFF(NZPH.Description is NULL,'Non Holiday','Holiday') AS
IS_NZ_PUBLIC_HOLIDAY_DESC
,IFF(NZPH.Description is NULL,'N/A',NZPH.Description) AS
NZ_PUBLIC_HOLIDAY_FULL_DESC
,IFF(AUPH.Description is NULL,0,1) AS
IS_AU_PUBLIC_HOLIDAY_FLAG
,IFF(AUPH.Description is NULL,'Non Holiday','Holiday') AS
IS_AU_PUBLIC_HOLIDAY_DESC
,IFF(AUPH.Description is NULL,'N/A',AUPH.Description) AS
AU_PUBLIC_HOLIDAY_FULL_DESC
,DATEDIFF('year',CURRENT_DATE(),START_DATE) AS CURRENT_YEAR
,DATEDIFF('month',CURRENT_DATE(),START_DATE) AS
CURRENT_MONTH
,DATEDIFF('day',CURRENT_DATE(),START_DATE) AS CURRENT_DAY

FROM DATE_RANGE DG
LEFT JOIN NZPUBLIC_HOLIDAYS NZPH ON TO_CHAR(START_DATE,'YYYYMMDD')
=NZPH.DATE_KEY
LEFT JOIN AUPUBLIC_HOLIDAYS AUPH ON TO_CHAR(START_DATE,'YYYYMMDD')
=AUPH.DATE_KEY
;
// Testing Holidays
// WHERE 1=1
// AND IFF(NZPH.Description is NULL,0,1)=1
// OR IFF(AUPH.Description is NULL,0,1)=1
// ORDER BY 1;

// Testing the DIM_DATE table


// select * from DIM_DATE where calendar_year = '2020' and NZ_FISCAL_MONTH = 1;
// select * from DIM_DATE where calendar_year = '2020' and AU_FISCAL_MONTH = 1;

You might also like