变量未在WITH子句中定义

时间:2017-09-08 22:43:21

标签: variables neo4j undefined with-statement

在以下查询中

MATCH (i:UT)-[c:Cedes]->(r:UT) 
WHERE i.RiIndex=0
WITH r, c, i, (CASE WHEN i.gross > c.xs THEN i.gross-c.xs ELSE 0 END) AS mn
RETURN r, sum(c.pp*(mn)) AS  ceded

执行正常,但

MATCH (i:UT)-[c:Cedes]->(r:UT) 
WHERE i.RiIndex=0
WITH r, c, i, (CASE WHEN i.gross > c.xs THEN i.gross-c.xs ELSE 0 END) AS mn, (CASE WHEN c.lim < mn THEN c.lim ELSE mn END) AS mx
RETURN r, sum(c.pp*(mx)) AS  ceded

给出以下错误

Variable `mn` not defined (line 3, column 97 (offset: 146))
"WITH r, c, i, (CASE WHEN i.gross > c.xs THEN i.gross-c.xs ELSE 0 END) AS mn, (CASE WHEN c.lim < mn THEN c.lim ELSE mn END) AS mx"
                                                                                                 ^

有人可以建议是否有办法通过“mn”&#39;变量到创建&#39; mx&#39;变量?

1 个答案:

答案 0 :(得分:1)

在WITH子句中,mn在WITH子句完成之前尚未在范围内。之后你需要另一个WITH,它将在范围内:

MATCH (i:UT)-[c:Cedes]->(r:UT) 
WHERE i.RiIndex=0
WITH r, c, i, (CASE WHEN i.gross > c.xs THEN i.gross-c.xs ELSE 0 END) AS mn
WITH r, c, i, (CASE WHEN c.lim < mn THEN c.lim ELSE mn END) AS mx
RETURN r, sum(c.pp*(mx)) AS  ceded