如何在单行中显示层次结构
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;
我有 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;