在以下查询中
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;变量?
答案 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