表 1:
ID AUDIT_KEY Col_Name
1 100 FULL NAME
2 101 FNAME
3 102 LNAME
4 103 ADDR1
表 2:
ID_key AUDITKEY Col_Value
1 100 john abraham
2 101 johny
3 102 Abraham
4 103 6900 Forester Rd
1 104 Praveen Gupta
2 105 Praveen
3 106 Gupta
4 107 3200 Walter RD
寻找查询以形成如下结果
ID NAME FNAME LNAME ADDR1
1 JOHN ABRAHAM JOHNY ABRAHAM 6900 Forester Rd
2 PRAVEEN GUPTA PRAVEEN GUPTA 3200 WALTER RD
当我基于 ID 和 ID_KEY 加入 table2 时,在 table1 上的书面数据透视查询不起作用..任何想法伙计..
SELECT ID, NAME,FNAME,LNAME,ADDR1
FROM TABLE1
INNER JOIN TABLE2 ON TABLE1.ID = TABLE2.ID
PIVOT (MAX(TABLE1.COL_NAME)
FOR TABLE2.COL_VALUE IN ('ID','NAME','FNAME','LNAME','ADDR1')) AS TMP
答案 0 :(得分:0)
我建议在 CTE 中加入,然后根据它的乘积做支点。类似的东西:
WITH x AS (
SELECT t1.col_name, t2.col_value
FROM TABLE1 t1
INNER JOIN TABLE2 t2
ON t1.id = t2.id
)
SELECT *
PIVOT (MAX(COL_NAME)
FOR COL_VALUE IN ('NAME','FNAME','LNAME','ADDR1')) AS TMP;
注意 - 我自己没有测试过,所以看看它是否有效。我不认为 Snowflake 喜欢在同一个查询中加入和透视,因此在 CTE 内进行联接为透视函数提供了一个单一的表输入。
另外,请注意,您在 IN
子句中有“ID”,但这不是示例数据中的 col_value 值,因此您不希望它出现在那里。这也可能是您的问题。