Cypher语言 - Gantt图从变长关系



我是Cypher新手,自学至今。我已经设法获得创意与基本查询,但现在击中的东西,我不知道如何实现....

给定一个作业ID依赖项列表:

│"A"│"Rel"        │"B"│
│29 │"DependantOn" │8 │
│21 │"DependantOn" │8 │
│20 │"DependantOn" │8 │
│22 │"DependantOn" │8 │
│24 │"DependantOn" │9 │
│25 │"DependantOn"│9 │
│23 │"DependantOn"│9 │
│26 │"DependantOn"│11│
│20 │"DependantOn"│11│
│22 │"DependantOn"│11│
│31 │"DependantOn"│23│
│8  │"DependantOn"│1│
│11 │"DependantOn"│1│
│29 │"DependantOn"│1│
│20 │"DependantOn"│1│
│20 │"DependantOn"│10│
│30 │"DependantOn"│10│
│30 │"DependantOn"│20│
│16 │"DependantOn"│5│
│16 │"DependantOn"│5│
│17 │"DependantOn"│5│
│12 │"DependantOn"│5│
│9  │"DependantOn"│2│
│28 │"DependantOn"│2│
│13 │"DependantOn"│2│
│27 │"DependantOn"│13│
│28 │"DependantOn"│13│
│29 │"DependantOn"│15│
│30 │"DependantOn"│15│
│25 │"DependantOn"│14│
│31 │"DependantOn"│14│
│9  │"DependantOn"│3│
│25 │"DependantOn"│3│
│23 │"DependantOn"│3│
│27 │"DependantOn"│3│
│23 │"DependantOn"│12│
│31 │"DependantOn"│12│
│25 │"DependantOn"│6│
│14 │"DependantOn"│6│
│31 │"DependantOn"│6│
│29 │"DependantOn"│7│
│30 │"DependantOn"│7│
│15│"DependantOn"│7│
│10│"DependantOn"│4│
│18│"DependantOn"│4│
│19│"DependantOn"│4│

我想创建一个表来显示基于最长路径的作业运行级别,并显示最长路径,如Gnatt图:

> L1 >>>  L2 >>> L3 >>> L4
> 1  >>>   8 >>>  20
>          8 >>> >>> >>> 29
>          8 >>>  21
>          8 >>>  22
> 2  >>>   9 >>>  23
> 3  >>>   9
>          9 >>>  24
>          9 >>>  25
> 4  >>>  10 >>>  20
>         11 >>>  20
> 1  >>>  11 >>>  26
> 1  >>> >>> >>>  20 >>> 30
> 5  >>>  12 >>> >>> >>> 31
> 2  >>>  13 >>>  27
> 3  >>> >>> >>>  23 >>> 31
>         12 >>>  23
> 6  >>>  14 >>>  25
> 7  >>>  15 >>> >>> >>> 29
>         11 >>>  22
> 1  >>> >>> >>> >>> >>> 29
>         10 >>> >>> >>> 30
> 5  >>>  16
> 5  >>>  17
> 2  >>> >>> >>>  28
>         13 >>>  28
>         15 >>> >>> >>> 30
>         14 >>> >>> >>> 31
> 3  >>> >>> >>>  25
> 3  >>> >>> >>>  27
> 6  >>> >>> >>>  25
> 6  >>> >>> >>> >>> >>> 31
> 7  >>> >>> >>> >>> >>> 29
> 7  >>> >>> >>> >>> >>> 30
> 4  >>>  18
> 4  >>>  19

我尝试使用(:File)-[:DependantOn*3]->(:File)collect with相同的*2, *1, *0,然后排序,但这不起作用。我需要一些方法来确定什么是L1 L2 L3 L4以及最长的路径是什么,并将它们分配到正确的层次上,并使用"null";",成为"祝辞的在;在适用情况下,

我不能使用[]或(),因为有许多其他节点和这些节点的关系(如文件内容,数据类型等)

任何指针都会有帮助。

你试过了吗?

MATCH p= (start:File)-[:TRIGGER*0..3]->(end:File)
WHERE NOT EXISTS (()-[:DependantOn]->(start))
RETURN end, MAX(length(p))+1 AS level

它会在L3返回29,我猜它应该在这里,因为它只取决于L2

的项

相关内容

  • 没有找到相关文章

最新更新