我有物料清单数据集。
*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] - GT;(B:部分) - [:component_of] - GT;(FG:份)
这可以在密码查询中完成吗?我从哪里开始?
答案 0 :(得分:1)
尝试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