Datumdimensies zijn enorm handig. Door gebruik te maken van een datumdimensie kun je voor een datum bepalen in welke week deze datum valt, welk jaar, welke maand, of het een feestdag is, etc. Hieronder het script.
Let op; dit is een voorbeelddimensie. Je kunt hem uiteraard zelf verfraaien met velden die voor jou belangrijk zijn!

Als we nu de datumdimensie aanmaken in de AdventureWorks database (dus niet het dwh van adventureworks) kun je de kracht zien. We gaan de datumdimensie joinen aan de OrderDate. Vervolgens kunnen we eenvoudig meerdere eigenschappen voor deze datum vinden!
SELECT TOP 100 SOH.SalesOrderID, SOH.OrderDate, DD.DatumId, DD.WeekNummer, DD.MaandNummerVanJaar, DD.Kwartaal445Code, DD.Kwartaal445Nummer FROM Sales.SalesOrderHeader AS SOH -- Hier zetten we de OrderDate om naar een integer en joinen hem met de Datum-dimensie DimDatum LEFT OUTER JOIN DimDatum AS DD ON YEAR(SOH.OrderDate) * 10000 + MONTH(SOH.OrderDate) * 100 + DAY(SOH.OrderDate) = DD.DatumId

Als bijlage bij dit artikel tref je een script aan om de datumdimensietabel te maken. Daarna een MS SQL Server stored procedure om de tabel te kunnen vullen.





















Tags
Maar mis ik nou de functie Get_ISOWeekNo of zie ik hem over het hoofd? 