cypher query用于计算层次结构中每个组件的总成本百分比
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cypher query用于计算层次结构中每个组件的总成本百分比相关的知识,希望对你有一定的参考价值。
我有一个物料清单数据集。
*data model*
(:part)
-part_num
-cost
[:component_of]
-quantity
以下查询将正确创建完整的BOM层次结构
MATCH path=(p:part)-[r:component_of*0..]->(fg:part)
WHERE fg.part_num = 'D100'
RETURN path
为了支持成本可视化,我试图计算每个组成部分归因于成品(fg:part)的成本百分比。我想实现的逻辑如下。
示例路径:
(A:一部分) - [:component_of] - >(B:部分) - [:component_of] - >(FG:部分)
- 对于每个部分,计算其父部分的成本百分比。 pct =(part.cost * relationship.quantity)/ parent_part.cost
- 返回层次结构并确定有效的百分比成本。如果(a)是(b)成本的50%,而(b)是(fg)成本的25%,那么(a)的有效百分比成本是.5 * .25 = .125或12.5% 。
这是可以在密码查询中完成的吗?我从哪里开始?
答案
尝试reduce
功能:
MATCH path=(p:part)-[r:component_of*0..]->(fg:part)
WHERE fg.part_num = 'D100'
WITH path,
NODES(path) AS nds,
RELATIONSHIPS(path) AS rls
RETURN path,
REDUCE(acc=1.0, i IN RANGE(0, LENGTH(path)-1) |
0.0001 * acc * nds[i].cost*rls[i].quantity / nds[i+1].cost
) AS epc
以上是关于cypher query用于计算层次结构中每个组件的总成本百分比的主要内容,如果未能解决你的问题,请参考以下文章