我有这样的桌子..
Name, fathers_name
-------------------
John,
Marty, John
Lucy, Marty
我需要将其更改为这样的形式,例如
Name, father_name, grandfather_name
-------------------------------------
John
Lucy, Marty, John
如何调用此数据结构/问题?
如何通过Qlikview或Sql进行转换?
谢谢!
答案 0 :(得分:1)
你可以使用这样的自联接:
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
答案 1 :(得分:0)
答案 2 :(得分:0)
编辑:层次结构功能有效并且是最佳解决方案。谢谢!
我曾尝试使用提到的层次结构,但如果我只有两列彼此相关的列不止一次,我就无法正常工作......
我做了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);
但这不是很优雅,必须为每个级别的连接重复。我很想找到一个更好的方法来做到这一点。