我正在努力建立顾客可以购买书籍的书店数据库。有标书Book,BookCategory,Customer,Invoice。我在发票和书籍之间使用关系INVOICEITEM。我在发票中添加了 netTotal 属性,以存储INVOICEITEM中与发票相关的图书的总和值。我试图获得与发票相关的书籍的总价值。
MATCH (n:Invoice {id:'inv001'})-[:INVOICEITEM]->m RETURN SUM(m.price)
我尝试使用此命令更改发票的netTotal propery。
MATCH (n:Invoice{ id: 'inv001' }) SET n.netTotal = ((n:Invoice {id:'inv001'})-[:INVOICEITEM]-> m RETURN SUM(m.price))
但它返回错误。我是neo4j的新手,谢谢你。
答案 0 :(得分:2)
在Invoice节点上更新netTotal
的查询应为:
MATCH (n:Invoice {id: 'inv001'})-[:INVOICEITEM]->(m:Book)
WITH n, SUM(m.price) AS netTotal
SET n.netTotal = netTotal
使用Book
语句计算WITH
价格的总和,将该值与SET
语句一起更新netTotal
Invoice
属性n
。请注意,您还需要在n
语句中指定WITH
,以便通过查询引入该绑定变量。有关WITH
声明here