Qlik Sense:筛选后LastYear与ThisYear表未加载,求排查原因
问题分析与解决
你的脚本核心问题出在All表的加载逻辑上,导致后续基于All表的LastYear和ThisYear无法获取数据,具体问题和修复方案如下:
1. 关键错误:All表未正确接收存储过程数据
原脚本中All:块的写法顺序错误:
All: load *; // 这行无数据源,会生成空表 sql exec [StoredProcedure]; // 存储过程结果被加载到默认自动命名的表,而非All表
此时All表是空的,后续resident All自然读不到任何数据。
修复方法
直接将存储过程的结果加载到All表,去掉多余的load *;:
All: SQL exec [StoredProcedure];
2. 额外验证点
如果修复后仍无数据,检查以下内容:
- 数据类型匹配:确认
Ship_Year是数值型(如2023),而非字符串型(如'2023')。如果是字符串,需转换类型后再比较:LastYear: load * resident All where num(Ship_Year) = year(now())-1; - 年份值正确性:确认
year(now())返回的当前年份与Ship_Year格式一致(均为四位数字),比如当前是2024年,year(now())-1为2023,需确保存储过程返回的Ship_Year确实包含对应年份的数据。
内容的提问来源于stack exchange,提问作者jw11432
相关产品推荐
相关产品推荐

