2017-06-22 65 views
2

我试图让object.I附上样本数据库screen shot我使用Neo4j的总结值

“DF”的属性的总(和)我试图让使用下面的查询图

MATCH P= (n:Org)-[:O_CH*0..]->()-[:LEAF*0..]->()-[:CH*0..]->()-[:FOR*0..]->() RETURN P 

创建对象

create(n:Org{name:'Root',id:1}) 

create(n:Org{name:'L1.1',id:2,parent:1}) 
create(n:Org{name:'L1.2',id:3,parent:1}) 
create(n:Org{name:'L1.3',id:4,parent:1}) 

create(n:Org{name:'L2.1',id:5,parent:3}) 
create(n:Org{name:'L2.2',id:6,parent:4}) 

create(n:Op{name:'CH1',id:7,orgId:5}) 
create(n:Op{name:'CH2',id:8,orgId:5 ,parent:'CH1'}) 

create(n:Proj{name:'P1',id:9,opp:'CH2'}) 
create(n:Proj{name:'P2',id:10,opp:'CH1'}) 

create(n:R{name:'R1',id:200,orgId:2 }) 

create (n:df{id:100,map:8,forecast:toFloat(10)}) 
create (n:df{id:101,map:7,forecast:toFloat(10)}) 
create (n:df{id:102,map:9,forecast:toFloat(10)}) 
create (n:df{id:103,map:10,forecast:toFloat(10)}) 
create (n:df{id:104,map:200,forecast:toFloat(10)}) 

要木箱关系

MATCH (c:Org),(p:Org) WHERE c.parent = p.id create (p)-[:O_CH]->(c) 
    MATCH (c:Op),(p:Op) WHERE c.parent = p.name create (p)-[:CH]->(c)  
    MATCH (c:Op),(p:Org) WHERE c.orgId = p.id create (p)-[:LEAF]->(c) 
    MATCH (c:Proj),(p:Op) WHERE c.opp = p.name create (p)-[:CH]->(c)  
    MATCH (c:R),(p:Org) WHERE c.orgId = p.id create (p)-[:LEAF]->(c)  
    MATCH (c:df),(p:) WHERE c.map = p.id create (p)-[:FOR]->(c) 

我预计总共有60个,总共有260个。请让我知道我错了。需要你的帮助弄清楚。

+0

你好。请编辑你的问题,而不是在评论中添加更多关于你的问题的信息。谢谢! –

+0

感谢布鲁诺,我已经将它添加到问题 –

回答

1

我在试图获得“df”对象属性的Total(Sum)。

我相信你需要匹配的标签:df所有节点和返回的​​总和是一个简单的查询。试试看:

// Match all nodes with :df label 
MATCH(n:df) 
// Return the sum of the property 'forecast' of each matched node 
RETURN sum(n.forecast) 

从评论:

谢谢Bruno.But我需要得到汇总值作为 例如,如果我选择L2.1的事情,我需要得到的总和DF对象,其 是节点下的

这应该工作:

MATCH({name:'L2.1'})-[*]->(n) 
RETURN SUM(n.forecast) 
+0

谢谢布鲁诺。但我需要得到的聚合值 作为一个例子,如果我选择** L2.1 **的事情,我需要得到df对象的总和它在那个节点下 –

+0

@ nad.SN我编辑了我的答案! –

+0

谢谢布鲁诺。它的工作原因是不正确的总和价值是由于我给出的关系。同一个df对象返回一次。 –