2017-02-21 23 views
0

Я собираюсь начать создавать размерную таблицу дат для проекта хранилища данных с помощью SQL Server 2012.Dimensional Дата Таблица с несколькими первого днем ​​недели

На замечаниях первого пользователь является то, что ....

«У разных клиентов будет отличный первый день недели, поэтому не всегда в понедельник».

Как я могу разместить потенциально 7 разных стартовых дней в одной тусклой таблице, или я должен просто рассчитать его обычным способом «на лету» на основе клиента в таблице фактов и не использовать таблицу датирования даты?

ответ

1

Вариант 1. Рассчитать его на лету, используя встроенные функции соответствия даты. По умолчанию SQL Server используется как воскресенье в качестве первого дня недели.

Вариант 2. Создайте дополнительный столбец в таблице для каждого дня недели с указанием его дня недели. Например, столбец TuesdayFirst будет иметь 1 для каждого вторника и 2 для каждой среды.

Вариант 3. (Лучший) Создайте представление о своем измерении даты, которое вычисляет дополнительные столбцы для каждого дня. Любой из столбцов, которые не нужны в выборе, будет проигнорирован и не рассчитан. Это дает преимущества постоянных столбцов и последовательного метода расчета, но имеет некоторые накладные расходы на обработку и предварительное вычисление.

Если вы выберете вариант 3, не используйте оператор CASE для его расчета. Вы должны делать это строго с математикой даты, чтобы она выполняла прилично при агрегировании.

+0

Спасибо за ответ Wes. Мне нравится идея варианта 3. Поэтому, чтобы получить это право ... В представлении будут представлены все возможные начальные дни или только один по принципу «по запросу»? Как насчет всех атрибутов в таблице праздничных дней Dim, которые будут затронуты этим другим днем ​​начала? то есть, если «среда» затем [StartOfWeekDate] = средняя дата, [EndOfWeekDate] = дата вторника, [DayofWeek] и, возможно, [DayNumber]. Является ли среда «1» или остается по умолчанию «2»? Предоставлено, будет только несколько затронутых атрибутов, поэтому не уверен, что в представлении будут указаны все вышеперечисленные атрибуты x 7? –

+0

Если вам понадобятся все столбцы, основанные на неделе, для каждого клиента, да, для каждого атрибута вам понадобится семь. Если вы это сделаете, и вы используете SSAS, я настоятельно рекомендую вам использовать папки в измерении даты куба, чтобы лучше организовать его для ваших конечных пользователей. Если в среду, если в первый день недели, я ожидаю, что это будет 1-й день недели. –