MS が生成した日付ディメンションではなく、独自の日付ディメンションを使用しています。次のようなテーブル構造があります。
CREATE TABLE [dbo].[DateDim]
(
[DateID] [int] NOT NULL, --PK
[FullDate] [date] NOT NULL,
[Year] [smallint] NOT NULL,
[QuarterOfYear] [tinyint] NOT NULL,
[MonthOfYear] [tinyint] NOT NULL,
[DayOfMonth] [tinyint] NOT NULL,
)
作成された階層: 年、四半期、月、月の日
関係: DateDim->DayOfMonth->Month->Quarter->Year
用に作成された複合キー
DayOfMonth: Year, Month, DayOfMonth;
Month: Year, Month;
Quarter: Year, Quarter;
ただし、これを作成して処理した後、年、四半期、月、日を取得しますが、それぞれに関連付けられている FullDate は「月の日」レベルでのみ関連付けられているようです。実際の日付は、階層には関係ありません。途中で何かが欠けているに違いないことはわかっていますが、何が間違っているのかわかりません。
冗長な関係を作成したり、列を複製したりせずに、これを適切に設定する方法についての指針はありますか? (前者が不適切であることは承知しています)