Qlikview 到 SQL 转换

问题描述 投票:0回答:1

任何人都可以帮忙将下面的qlikview代码转换为雪花SQL吗?

我刚刚开始从 qlikview 到雪花迁移,并且对 qlikview 的了解非常少,因此需要有关

applymap
在这里如何工作的帮助:

Left Join(EXCEL_REQ_PO_MSTR)
LOAD PO_STATUS_KEY,IF(POD_SCHED='1',ApplyMap('EXCEL_PO_STATUS_SCHEDULED',PO_STATUS_KEY,null()),
ApplyMap('EXCEL_PO_STATUS_UNSCHEDULED',POD_NBR,null()))
AS PO_STAT_DESC
RESIDENT EXCEL_REQ_PO_MSTR;

EXCEL_PO_STATUS_SCHEDULED:
MAPPING
LOAD PO_STATUS_KEY,PO_STAT;
SQL SELECT DISTINCT CONCAT_WS('|',POD_NBR,POD_LINE,POD_PART,POD_LOC,POD_PO_SITE,POD_DUE_DATE) as PO_STATUS_KEY,
/*SELECT DISTINCT CONCAT_WS('|',POD_NBR,POD_LINE,POD_PART,POD_LOC,POD_SITE,POD_DUE_DATE) as PO_STATUS_KEY,*/
CASE
WHEN  "POD_END_EFF##1" IS NULL
THEN 'open'
ELSE 'closed'
END AS PO_STAT
FROM  PROD_RAW.EXCEL_QADDB.VW_POD_DET
WHERE  LENGTH(TRIM(POD_NBR))>0 /*AND
 SUBSTR(TRIM(POD_NBR),1,1) IN ('P')*/ AND SUBSTR(TRIM(POD_NBR),2,1) IN ('0','1','2','3','4','5','6','7','8','9') 
 AND  LENGTH(TRIM(POD_PART))>0;

EXCEL_PO_STATUS_UNSCHEDULED:
MAPPING
LOAD PO_STATUS_KEY,PO_STAT;
SQL SELECT DISTINCT PO_NBR AS PO_STATUS_KEY,CASE
WHEN  PO_STAT IS NULL
THEN 'open'
ELSE 'closed'
END AS PO_STAT
FROM PROD_RAW.EXCEL_QADDB.VW_PO_MSTR;

我尝试了以下转换:

SELECT
    CASE
        WHEN POD_SCHED = '1' THEN
            (SELECT PO_STATUS_KEY FROM dev_marts.purchasing.EXCEL_PO_STATUS_SCHEDULED)
        ELSE
            (SELECT pod_nbr FROM dev_marts.purchasing.EXCEL_PO_STATUS_UNSCHEDULED)
    END AS PO_STAT_DESC 
from dev_marts.purchasing.EXCEL_REQ_PO_MSTR;
 
sql qlikview snowflake-schema
1个回答
0
投票

这是一个使用一些组成字段的示例,这些字段比您给出的示例简单得多,但您将能够应用该概念。

Qlik 脚本:

DESC_MAP:
MAPPING
LOAD
ItemNum as ItemCode,
ItemName as Desc
FROM [lib://QVData/UserDescriptions.qvd]
(qvd);

ITEMS:
LOAD
ItemCode,
applymap('DESC_MAP', ItemCode, null()) as UserDesc
FROM [lib://QVData/Items.qvd]
(qvd);   

相当于

select  
ItemCode,
(Select ItemName  FROM UserDescriptions where Items.ItemCode = UserDescriptions.ItemNum) as CommodityClassDesc
from Items

您应该能够将复杂的地图创建 SQL 查询粘贴到 CASE 查询逻辑中,然后您仍然需要将 POSTATUS_KEY 添加到 where 子句以使其每次返回唯一的行

© www.soinside.com 2019 - 2024. All rights reserved.