2017-06-22 78 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對象返回一次。 –