如何在单行中显示层次结构

How to display hierarchy in a single row

我有 table 这样的..

Name, fathers_name
-------------------
John,
Marty, John
Lucy, Marty

比如我需要改成这样的形式

Name, father_name, grandfather_name
-------------------------------------
John
Lucy, Marty, John

这个数据结构/问题怎么叫?

如何通过 Qlikview 或 Sql 进行转换?

谢谢!

您可以像这样使用自联接:

select a.name, b.name fathersname, c.name grandfathersname
from your_table a
left join your_table b on b.name = a.fathers_name
left join your_table c on c.name = b.fathers_name;

它会给你:

Lucy    Marty   John
Marty   John    
John        

您似乎在尝试格式化分层数据。

Qlikview website 上查看此文档。关键是描述如何在 LOAD 语句之前构建存储层次结构的 table。

您需要正确设置源数据的格式才能成功。

编辑:层次结构功能有效,是最佳解决方案。谢谢!

我试过使用提到的层次结构,但如果我只有两列相互关联不止一次,我就无法使其正常工作...

我做了 GurV 发布的内容。就我而言,解决方案是:

ACTIVITY: 
LOAD ACTIVITY.activity_code, 
     ACTIVITY.activity_mother_code as activity_key1,
     ACTIVITY.activity_name, 
FROM
[D:\ACTIVITY.qvd]
(qvd);

left join (ACTIVITY)

LOAD ACTIVITY.activity_code as activity_key1, 
     ACTIVITY.activity_mother_code as activity_key2,
     ACTIVITY.activity_name as ACTIVITY1.activity_name, 
FROM
[D:\ACTIVITY.qvd]
(qvd);

left join (ACTIVITY)

LOAD ACTIVITY.activity_code as activity_key2, 
     ACTIVITY.activity_name as ACTIVITY2.activity_name, 
FROM
[D:\ACTIVITY.qvd]
(qvd);

但这不是很优雅,必须为每一级连接复制。我很想找到一种更好的方法来做到这一点。

Father_son: 负载名称, 父亲 从 [C:\Users\qvs1_svc_va\Desktop\New 文本 Document.txt] (txt,codepage为1252,内嵌标签,分隔符为'\t',msq);

不连接

Father_GrandFather: 加载父亲居民Father_son; 左连接 加载名称为父亲,父亲为祖父居民 Father_son;

不连接

家庭: load Name , Father Resident Father_son; 左连接 load Father , GrandFather 居民 Father_GrandFather;

删除表 Father_son、Father_GrandFather;