Qlik中按PN计算Date_1与Date_2指定年份日期的需求
Qlik脚本实现指定年份日期计算
思路
不用搞复杂循环,直接用Qlik自带的AddMonths()函数,基于原始的Date和Periodicity字段,直接算出2023年的Date_1和2024年的Date_2就行,刚好满足每个PN只出这两个日期的需求。
脚本代码
// 加载数据库原始数据,替换为你的实际数据源连接/文件路径 RawData: LOAD PN, Date, Periodicity, // 计算2023年目标日期:原始日期加周期月数 AddMonths(Date, Periodicity) AS Date_1, // 计算2024年目标日期:在Date_1基础上再加一轮周期月数 AddMonths(Date_1, Periodicity) AS Date_2 FROM [你的数据源信息] (对应格式,如qlikview/odbc); // 可选:过滤确保日期落在目标年份(避免特殊周期导致的偏移) FilteredData: LOAD * Resident RawData WHERE Year(Date_1) = 2023 AND Year(Date_2) = 2024; DROP TABLE RawData;
细节说明
AddMonths(date, n):Qlik内置函数,自动处理月份天数差异(比如2月28日加1个月会自动适配为3月28日),不用手动调整日期格式- 无需循环的原因:需求仅需2023、2024各一个日期,两次
AddMonths计算直接得到结果,没必要生成大量中间日期再筛选 - 过滤步骤的作用:比如当Periodicity=6、原始Date为2022-10-01时,Date_2会是2023-10-01,不属于2024年,过滤能剔除这类不符合要求的记录
示例验证
以你给出的PN 10101为例:
- 原始Date=01/02/2022,Periodicity=12
- Date_1 = AddMonths('01/02/2022',12) → 01/02/2023
- Date_2 = AddMonths('01/02/2023',12) → 01/02/2024
完全匹配需求。
内容的提问来源于stack exchange,提问作者Juji
相关产品推荐
相关产品推荐

