永洪社区

标题: 如何实现动态取价格? [打印本页]

作者: 411082514    时间: 2020-5-23 12:36
标题: 如何实现动态取价格?

求助各位大神!
用永洪做数据分析的时候,遇到一个订单动态取价格的场景,简化如下:

对不同水果,有表1的调价表,只在价格更改的时候,增加一条记录。

表2是销售订单记录表,但是由于特殊原因,在做销售单的时候没有价格,需要通过表1,按种类和调价区间,来补录价格,并填写在表2【?】处。

尝试了几种办法都失败了,请问可以通过sql来实现么(数据库为oracle)?感谢感谢!

表1:
种类
价格
调价时间
苹果
5
1月1日
苹果
4.5
1月15日
苹果
4.3
1月20日
香蕉
12
1月4日
香蕉
13
1月25日



表2:订单表
订单号
种类
订单时间
价格
DD001
苹果
1月1日
DD002
香蕉
1月2日
DD003
苹果
1月5日




作者: BoJie    时间: 2020-5-23 22:04
是个好题!
作者: BoJie    时间: 2020-5-24 17:51
标题: 不是BI工程师的活!
本帖最后由 BoJie 于 2020-5-24 23:08 编辑

这是数据库开发工程师或者ETL工程师的活,不是BI工程师的活!
作者: 411082514    时间: 2020-5-25 12:50
BoJie 发表于 2020-5-24 17:51
这是数据库开发工程师或者ETL工程师的活,不是BI工程师的活!

项目组遇到了问题,在前台解决不了,才想办法在后台处理。还请大家帮忙试试!
作者: 411082514    时间: 2020-5-25 12:53
原则上调价应该在销售之前,这个我们也懂,但是现在涉及调价模式比较复杂(上下游,帖子中给出的是简化模型),很多场景需要后期向前追溯调价,题目比较有趣,但不好实现,还请各位大神帮忙试试~
作者: Adil_zhang    时间: 2020-5-27 14:42
用订单表.种类 关联 价格调整表.种类,  取订单表的ALL、价格调整表的单价及价格调整时间,再用订单表.订单时间 -价格调整表.价格调整时间  as 时间差,最后过滤掉时间差为负数的,取时间差最小的那条记录即可。
这个是最简单粗暴的方法,会产生笛卡尔积,应该效率极低,数据量不大的话可以试试。






欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4