【发布时间】:2018-02-20 16:07:25
【问题描述】:
我有以下 SQL 表:
CREATE TABLE SALES
(saleID INT PRIMARY KEY,
grossSalePrice DECIMAL(9,2),
vehicleStatus VARCHAR(10) NOT NULL CHECK (lower(vehicleStatus) IN ('available', 'sold', 'pending')),
saleDate DATE,
saleMileage INT,
customerID INT,
salespersonID INT,
vehicleVIN VARCHAR(25),
CONSTRAINT SALES_FK1 FOREIGN KEY (customerID) REFERENCES CUSTOMERS(customerID),
CONSTRAINT SALES_FK2 FOREIGN KEY (vehicleVIN) REFERENCES VEHICLES(vehicleVIN),
CONSTRAINT SALES_FK3 FOREIGN KEY (salespersonID) REFERENCES SALESPERSONS(salespersonID));
并且我已经创建了以下 Star-Schema 维度表:
CREATE TABLE TIMES
(saleDay DATE PRIMARY KEY,
dayType VARCHAR(50) NOT NULL);
我需要用SALES 表中的每个saleDate 填充TIMES 表的saleDay 列。此外,dayType 列应根据每个saleDay 完成。 dayType 列的值应该是 Weekday、Weekend 或 Holiday,如果 dayType 是 Holiday,则它应该优于 Weekend 或 Weekday。
要获得成为Holiday 的资格,日期必须是:
1月1日,
1月15日,
1月19日,
5月28日,
7月4日,
10月8日,
11月11日,
11月22日,
12 月 25 日。
有人要求我通过 PL/SQL 填充 saleDay 和 dayType 值,但我不知道从哪里开始或如何完成。非常感谢有关如何完成此操作的任何帮助/指导。
【问题讨论】:
标签: plsql populate dimension star-schema