首页 > 解决方案 > SQL:选择一系列日期范围内的所有观察?

问题描述

我有一个 OLAP 结构化的 sql server 数据库。我的事实表是销售。

我有 2 个维度和 1 个事实表。尺寸如下:

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

事实表:

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

请注意,促销维度没有自己的唯一标识符。我相信四元素元组是~复合主键。

首先,我想创建一个名为 的主键PromotionID,将其存储在这个维度中。接下来,我想遍历销售事实表中的每个观察结果,如果观察日期在促销维度中的范围StartDate->EndDate内,我想将外键属性分配为PromotionID. 最后,我想从 FKPromotionID不是的销售事实表中选择所有观察结果NULL

两个问题:

  1. 我如何实现这种影响?
  2. 上述步骤是实现这一目标的最简单方法 - 还是有更简单的方法?

标签: sqlsql-serverolapdimensionsfact-table

解决方案


推荐阅读