2015-10-03 68 views
0

我正在试图制作客户可以购买书籍的书店数据库。有Book,BookCategory,Customer,Invoice。我在发票和图书之间使用关系INVOICEITEM。我在发票中增加了财产netTotal以存储INVOICEITEM中与发票相关的账面总值。我试图获得与发票有关的书籍的总价值。在另一个查询中使用一个查询值Neo4j CQL

MATCH (n:Invoice {id:'inv001'})-[:INVOICEITEM]->m RETURN SUM(m.price) 

我试图通过使用此命令来更改发票的netTotal凭证。

MATCH (n:Invoice{ id: 'inv001' }) SET n.netTotal = ((n:Invoice {id:'inv001'})-[:INVOICEITEM]-> m RETURN SUM(m.price)) 

但它返回一个错误。我是neo4j的新手,谢谢。

回答

2

到发票节点上更新netTotal查询应该是:

MATCH (n:Invoice {id: 'inv001'})-[:INVOICEITEM]->(m:Book) 
WITH n, SUM(m.price) AS netTotal 
SET n.netTotal = netTotal 

计算Book价格使用WITH声明须带到SET声明价值的总和更新InvoicenetTotal财产n。请注意,您还需要在WITH语句中指定n以使查询中也绑定该绑定变量。更多关于WITH的声明here

+0

非常感谢。很有帮助。 –

相关问题