2020年7月 杭州晨科技术有限公司出给我的面试题
一、题目如下
这有一个面试题,你看看能不能做出来。一个房产代理公司,同时代理了多个楼盘项目,其业务员可以同时负责任意楼盘的销售。现在该公司想核算每个楼盘每个月的人员工资成本,核算规则是:如果业务员当月未出单,则按所有楼盘数量平摊该业务员的工资;如果该业务员有出单,则按每个楼盘的出单数量均摊业务员的工资,未出单的楼盘不核算成本。请构建数据库模型,并用sql完成,不能用if逐条处理。
提示:需要用到group by,sum,count,一共五张表,楼盘表(id、楼盘名称),业务员表(id,姓名),销售业绩表(月份,业务员、楼盘、销售数量),工资表(月份,业务员、工资),成本核算表(月份,楼盘、工资成本),最终结果写入到成本核算表,有需要的话表里可以增加字段,可以用多条sql来实现
假设一共5个楼盘,如果业务员张三工资是5000,一个月没出一单,则每个楼盘摊1000的成本。如果业务员李四工资是6000,两个楼盘各出1单和2单,其他楼盘没出单,则出单的两个楼盘分别摊2000和4000的成本,其他三个楼盘摊的成本为0。这个面试题你要是能做出来,可以约个时间过来面试
二、我数据库前期准备
1 | #楼盘表 |
三、我个人答案版本,使用一个 sql 语句完成操作,代码结构复杂
1 | insert into cost_accounting |
四、其他面试人员版本,使用一个临时表和两个 sql 语句完成操作,代码结构较为清晰明了
1 | 建临时表,字段包含月份,楼盘,业务员,工资成本 |