在Qlik中基于多字段+日期条件关联表(附等效SQL参考)
Qlik实现多字段匹配+日期校验自关联操作说明
注:你提供的SQL关联条件存在重复笔误,结合业务逻辑默认修正为
bTable.Field_1 = cTable.Field_1 AND bTable.Field_2 = cTable.Field_2 AND bTable.Field_3 = cTable.Field_3 AND bTable.Rec_Date > cTable.Rec_Date,如果实际关联规则不同可自行调整匹配字段。
步骤1:加载生成bTable(对应第一段SQL逻辑)
打开Qlik脚本编辑器,写入以下加载代码:
// 从aTable提取指定字段生成bTable bTable: LOAD ID, Field_1, Field_2, Field_3, Rec_Date RESIDENT aTable; // 若aTable为未加载的外部数据源,将上方RESIDENT关键字替换为对应数据源加载方式,例如FROM [Excel/数据库路径]
步骤2:自关联生成dTable(对应第二段自连接SQL逻辑)
继续在脚本中添加以下代码,逻辑和SQL自关联完全等效:
// 加载bTable副本作为临时关联表cTable,避免字段重名冲突 cTable: LOAD ID AS Master_ID, Field_1 AS c_Field_1, Field_2 AS c_Field_2, Field_3 AS c_Field_3, Rec_Date AS c_Rec_Date RESIDENT bTable; // 按规则匹配生成最终dTable dTable: LOAD Master_ID, Field_1, Field_2, Field_3, Rec_Date RESIDENT bTable, cTable WHERE Field_1 = c_Field_1 AND Field_2 = c_Field_2 AND Field_3 = c_Field_3 AND Rec_Date > c_Rec_Date; // 清理临时表释放内存,可选操作 DROP TABLE cTable; // 若不需要保留原始bTable也可添加 DROP TABLE bTable;
结果校验
脚本执行完成后可通过以下方式确认逻辑正确:
- 进入数据模型查看器,核对dTable的字段、行数是否符合预期
- 新建表格可视化对象,拉取Master_ID、Field_1、Field_2、Field_3、Rec_Date字段,抽查多字段匹配、日期大于的规则是否生效
内容的提问来源于stack exchange,提问作者Stelios Bob
相关产品推荐
相关产品推荐

