Salesforce Marketing Cloud SQL查询:筛选本年度满65周岁人员
解决本年度满65岁人员的筛选问题
你的SQL语句语法合法但结果不符合预期,核心原因是它计算的是当前时刻的实际年龄,只会选出当前已经满65岁的人,漏掉了那些生日在今年剩余时段、即将满65岁的人员。
以下是两种更精准的解决方案:
方案一:基于出生年份直接筛选(简洁高效)
SELECT * FROM ITH_Patients_Account WHERE RecordTypeId = 'XXXXXXXXXXXXXXX' AND YEAR(Date_of_Birth__c) = YEAR(GETDATE()) - 65
这个逻辑直接锁定出生年份为「当前年份-65」的人员,确保所有在本年度会迎来65岁生日的人都被包含,不管生日是否已经过了。
方案二:通过65岁生日日期范围筛选(更严谨)
SELECT * FROM ITH_Patients_Account WHERE RecordTypeId = 'XXXXXXXXXXXXXXX' AND DATEADD(year, 65, Date_of_Birth__c) BETWEEN DATEFROMPARTS(YEAR(GETDATE()), 1, 1) AND DATEFROMPARTS(YEAR(GETDATE()), 12, 31)
这个方法通过计算用户满65岁的具体日期,判断该日期是否落在本年度范围内,能更好处理闰年2月29日出生的特殊情况(SQL会自动将这类日期调整为非闰年的2月28日),避免遗漏特殊案例。
内容的提问来源于stack exchange,提问作者Belen Grajales
相关产品推荐
相关产品推荐

