我有此表(日,员工编号,员工姓名,客户编号,客户名称,产品编号,产品描述,单价,销售数量,总销售额)
示例数据:
22nd, e123, Dave, c1264, Sheila, p15462, Hoover, 4.50, 5, --
----, ----, -----, c64402, Jovek, p673431, Kettle, 2.25, 10, 45
----, e4215, Johnny, c785, Keith, p15462, Hoober, 4.50, 2, 9
23rd, e123, Dave, c64402, Jovek, p673431, Kettle, 2.25, 20, --
所以基本上,只有当天的数据,如果它是新的一天入场,并且在员工所做的所有销售之后,总销售额只有总数。
到目前为止,我有:
Product(ProdNo#,ProductDesc,Price)
Client(ClientNo#, ClientName)
Employee(EmployeeNo#, EmployeeName)
但是,我不确定如何处理每天的个人销售和总销售额?
感谢您的帮助!
答案 0 :(得分:0)
这是使用star- or snowflake schema的典型示例。
表Product,Customer,Employee称为维度表。
事实表具有维度表的外键并包含数量,例如混凝土销售。
Sales(ProdNo#, ClientNo#, EmployeeNo#, Sale)
主键是ProdNo#, ClientNo#, EmployeeNo#
SELECT P.ProdNo, SUM(S.sale)
FROM Products P, Sales S
WHERE P.Price > 1000 AND S.ProdNo = P.ProdNo
GROUP BY P.ProdNo
。
总销售额不会被明确建模,而是通过汇总查询,例如
'hide_empty' => 0
RDBMS或数据仓库将优化查询,因此总销售确实需要明确建模(无非规范化)。