【发布时间】:2017-10-11 16:22:32
【问题描述】:
我有一个成功运行的查询:
match (n:A {tag_no:"N2203"})<-[:rel_a]-(v:B)-[:rel_b]->(r)<-[:rel_c]-(n) WHERE (v.invoice_date>="2012-08-01" AND v.invoice_date<"2016-02-01") with v, collect(r) as rs where all (x in rs where x.date<"2016-08-01") return count(v) as count;
我需要进一步过滤这个查询。
我需要关联r nodes with max(r.date) for each v,并找出这些节点中有多少与D 类型的另一个节点有关系
我正在尝试这个查询,它会引发语法错误
match (n:A {tag_no:"N2203"})<-[:rel_a]-(v:B)-[:rel_b]->(r)<-[:rel_c]-(n) WHERE (v.invoice_date>="2012-08-01" AND v.invoice_date<"2016-02-01") with v, max(r.date) as date collect(r) as rs where (all (x in rs where x.date<"2016-08-01") AND filter(x in rs where x.date=date)[0]<-[:rel_c]-(d:D)) return count(v) as count;
我还尝试了许多其他组合,但都抛出了一些语法错误。感谢所有帮助。
【问题讨论】:
-
您的查询将受益于格式化,这将使调试更容易。请使用 4 个缩进空格(而不是三个反引号),并在查询中使用更多空格。我在gist.github.com/szarnyasg/8b53983b5ade8a31e4410f8f48ee3653 创建了示例