SQL: Выбрать все наблюдения в пределах ряда диапазонов дат? - PullRequest
0 голосов
/ 15 марта 2020

У меня есть структурированная серверная база данных OLAP sql. Моя таблица фактов - продажи.

У меня есть 2 измерения и 1 таблица фактов. Размеры следующие:

Product (ProductID, ProductName, ProductDescription, ListPrice)
Promotion (ProductID, Discount, StartDate, EndDate)

И таблица фактов:

Sales (SalesID, CustomerID, ProductID, Date, ProductReturned)

Обратите внимание, что для параметра «Продвижение» не существует собственного уникального идентификатора. Я считаю, что кортеж из четырех элементов - это составной первичный ключ.

Во-первых, я хотел бы создать первичный ключ с именем PromotionID и сохранить его в этом измерении. Затем я хотел бы пройтись по каждому из наблюдений в таблице фактов продаж, если дата наблюдения попадает в диапазон StartDate -> EndDate в измерении Продвижение, я хочу назначить атрибут внешнего ключа как PromotionID. Наконец, я хочу выбрать все наблюдения из таблицы фактов продаж, где FK PromotionID не равен NULL.

Два вопроса:

  1. Как мне выполнить sh этот эффект?
  2. Являются ли вышеуказанные шаги самым простым способом достижения этой цели - или есть более простой способ?
...