一个棘手的问题,向老大提问
举例说明:员工档案表,员工工资表。表结构:
员工档案表:人员id,员工名称。
员工工资表:人员id,月份,工资;
名次解释:
同期:员工张三2008年5月份的工资的同期就是员工张三2007年5月份的工资(就是去年同时段收入);
当期:就是员工当月的收入。
同期累计:就是员工员工2007开始到2007年五月份的和
当期累计:就是员工员工2008开始到2008年五月份的和
现在存在这样的问题,如果员工张三只在公司干了一个月,就是说张三在2007年5月份入职干了一个月离职,那么在工资表里只有一行记录。但是这个员工2007-06,2007-07,2007-08。。。。。。2007-12的累计收入都有啊,而且2008年5月份他的同期收入也有啊(就是2007-05份)。那么怎么求它的当期累计,同期,同期累计。比如说公司里经营A产品,A产品只在2008-05份买过,一直都没买,在统计的过程中,这个产品 2007-06,2007-07,2007-08。。。。。。2007-12 都是有累计销量的,而且在2008-05月份这个产品是有同期销量的,就是其实在业务数据库值存在一条数据,但是这些业务形态确实存在,向老大和各位请教。
(以上都是虚拟环境)
现在的解决方案:
把员工id和时间对应表(就是从2007-01-01到2008-01-01的所有时间)做基卡尔积,
这样出来的员工id和时间的对应是最全的,用写函数到员工表里匹配,如果匹配上了,用函数来算他的同期,当期,同期累计,当期累计。但是这样子很慢,一个表有2亿行。一个表有4万多行,这样子执行结果就出来,所以寻求更好的思路
员工档案表:人员id,员工名称。
员工工资表:人员id,月份,工资;
名次解释:
同期:员工张三2008年5月份的工资的同期就是员工张三2007年5月份的工资(就是去年同时段收入);
当期:就是员工当月的收入。
同期累计:就是员工员工2007开始到2007年五月份的和
当期累计:就是员工员工2008开始到2008年五月份的和
现在存在这样的问题,如果员工张三只在公司干了一个月,就是说张三在2007年5月份入职干了一个月离职,那么在工资表里只有一行记录。但是这个员工2007-06,2007-07,2007-08。。。。。。2007-12的累计收入都有啊,而且2008年5月份他的同期收入也有啊(就是2007-05份)。那么怎么求它的当期累计,同期,同期累计。比如说公司里经营A产品,A产品只在2008-05份买过,一直都没买,在统计的过程中,这个产品 2007-06,2007-07,2007-08。。。。。。2007-12 都是有累计销量的,而且在2008-05月份这个产品是有同期销量的,就是其实在业务数据库值存在一条数据,但是这些业务形态确实存在,向老大和各位请教。
(以上都是虚拟环境)
现在的解决方案:
把员工id和时间对应表(就是从2007-01-01到2008-01-01的所有时间)做基卡尔积,
这样出来的员工id和时间的对应是最全的,用写函数到员工表里匹配,如果匹配上了,用函数来算他的同期,当期,同期累计,当期累计。但是这样子很慢,一个表有2亿行。一个表有4万多行,这样子执行结果就出来,所以寻求更好的思路
...全文


疑难问题
