Я заполнил измерения - как заполнить таблицу фактов?

Я заполнил 4 таблицы измерений: время, место, заброшенный и тип работы.

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

Таблица фактов должна заканчиваться этими столбцами

TimeID  -  SiteId  -  AbandonedID  -  WorkTypeID  -  HoldTime  -  ACWTime  -  RingTime    TalkTime

Данные должны быть также сгруппированы по идентификаторам 4-х измерений.


person Richard C    schedule 28.03.2013    source источник


Ответы (1)


Простое JOIN должно помочь. Выполните INSERT...SELECT из вашей промежуточной таблицы в целевую таблицу. В промежуточной таблице должны быть меры и естественные ключи для каждого измерения, сделать 4 соединения, по одному для каждого измерения, на естественных ключах, чтобы получить суррогатные ключи, и вставить их в факт.

person N West    schedule 28.03.2013
comment
да, я могу получить измерения и фактические идентификаторы, но он тянется ко многим строкам и не объединяется правильно, я не уверен, как выполнять соединения. Мне нужно присоединиться к идентификатору времени, где он находится между временем начала и окончания в таблице мер. Затем я присоединяюсь к заброшенному идентификатору к правильному заброшенному значению в таблице мер. Идентификатор сайта должен быть присоединен к правильному значению в значении сайта в таблице мер. И тип работы тот же. Любые идеи? - person Richard C; 28.03.2013
comment
Можете ли вы отредактировать свой вопрос и добавить свою модель данных? Было бы полезно понять ваши естественные ключи для каждого димма и какова структура промежуточной таблицы. - person N West; 29.03.2013
comment
Я не уверен, как я могу добавить модель данных? Это звездная схема, поэтому все измерения связаны с таблицей фактов. Промежуточная таблица не связана, она просто содержит значения мер, а также несколько других полезных атрибутов. - person Richard C; 29.03.2013
comment
Между естественным ключом в таблице этапов и суррогатным ключом в таблице измерений должно быть соотношение 1:1. Вместо того, чтобы пытаться найти TimeID, который соответствует времени начала и окончания, у вас должно быть 2 отдельных внешних ключа, один для времени начала и один для времени окончания. - person Victor HDC; 29.03.2013
comment
RichardC Как говорит @VictorHDC, у вас должен быть идентификатор времени для времени начала и идентификатор времени для времени окончания. Это так называемые ролевые измерения, когда одно и то же измерение играет несколько ролей в таблице фактов. Когда я спрашивал о модели данных, я имел в виду структуры таблиц (т. е. временные рамки со списком соответствующих столбцов и типов данных, промежуточную таблицу и т. д.). Существует сайт SQLFiddle.com, на котором вы можете создать DDL и предоставить ссылку, чтобы нам было легче понять, что вы пытаетесь сделать и где это вызывает проблемы. - person N West; 29.03.2013