【发布时间】:2018-04-03 11:17:57
【问题描述】:
我是维度建模的新手,因为有点卡住了。场景是“公司”已将其假期保险和疾病保险的填写外包给他们填写的代理机构,每次填写的会议称为轮班。我有一个如下的 4 个维度表。为简单起见,我只包括了一个每个行。我正在使用 sql developer。
公司维度-包含公司分支机构的所有详细信息
BranchId|BranchName|Postcode|County
12 |Kensington|rt5gg |newengland
Shift_worker 维度- 包含所覆盖的轮班工人的所有详细信息
worker_id|worker_name|phone
33 |Steve Smith|07766755543
Shift_request 维度- 包含公司向代理机构提出的请求的所有详细信息
Request_id|Branch_id
1221 |12
时间维度
time_id|week_num|day_of_the_week|quarter_num|weekend_flag|Year
221 |3 | 3 |2 |N |2014
最后是移位表,事实表将从中读取
shift_date |shift_status|shift_id|request_id|worked_hours|type
------------------------------------------------------------------
09-01-2011|Filled |8899 |1221 | 2 |cleaner
21-01-2011 |Cancelled |6677 |1332 | 0 |Admin_assistant
我已经创建了一个如下的事实表
CREATE TABLE "FACT_company"
( "FACT_ID" NUMBER,
"TIME_ID" NUMBER,
"BRANCH_ID" NUMBER,
"WORKER_ID" NUMBER,
"REQUEST_ID" NUMBER,
"SHIFT_ID" NUMBER,
"WORKED_HOURS" NUMBER,
"TYPE" VARCHAR2(30 BYTE),
"SHIFT_STATUS" VARCHAR2(30 BYTE)
) SEGMENT CREATION DEFERRED
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
NOCOMPRESS LOGGING
TABLESPACE "COMPANY" ;
如何在 PL/SQL 中使用游标填充这个事实?我的目标是事后分析数据,找出每个月取消了多少班次,每个季度填补了多少班次等。我希望我走在正确的道路上。
【问题讨论】:
-
您似乎没有任何东西可以将 Worker 与 Shift 联系起来。
标签: sql oracle plsql dimensional-modeling