提问人:Malini Bakthavatchalam 提问时间:10/4/2023 最后编辑:Chris AlbertMalini Bakthavatchalam 更新时间:10/10/2023 访问量:58
对会计年度使用重叠月份概念
using an overlapping months concept for fiscal year
问:
我正在努力了解我公司内部的客户路径。我们想看看重叠的月份 2021 年 1 月至 2022 年 6 月(22 财年),然后是 2022 年 1 月至 2023 年 6 月(23 财年)。但我的日历表只计算 12 个月的财政年度。所以,我尝试了很多动态查询,但是 我无法达到预期的结果。如果我只看一个会计年度22,我就可以获得结果,但我需要使其自动化,这样就不需要对日期范围进行自定义查询。
SELECT
CUSTOMER_SK,
dd. fiscal_year_num as FISCALYEAR,
CASE
WHEN MAX(is_new_customer_encounter) = TRUE THEN 'NEW'
WHEN MAX(is_reengaged_customer_encounter) = TRUE THEN 'REENGAGED'
WHEN MAX(is_retained_customer_encounter) = TRUE THEN 'RETAINED'
ELSE 'UNKNOWN'
END AS CUSTOMER_CATEGORY
FROM
refined.core.calendar dd
join enriched.analytics.encounter_system_level sys
on dd.calendar_date = sys.encounter_ts::date or dd.year_num= =year(sys.encounter_ts)
WHERE
dd.fiscal_year_num between 2023 and 2024
GROUP BY
1,2;
对这个问题有什么想法吗?
我确实尝试了动态日期,但没有任何效果。
这是我想要的结果
客户 | 访问日期 | 财年 |
---|---|---|
客户 1 | 01/25/2023 | 2023 |
客户 2 | 07/11/2023 | 2024 |
客户 1 | 01/25/2023 | 2024 |
答:
0赞
Chris Albert
10/5/2023
#1
您可以使用 CTE 创建自己的日历表版本,其中包含您的日期。下面的示例从现有日历表中获取基本数据集。然后,它将它与每年前 6 个月的日历数据集的副本合并,并将会计年度减少 1。
WITH FiscalCalendar AS
(
SELECT *
FROM refined.core.calendar
UNION ALL
SELECT calendar_date, fiscal_year_num - 1
FROM refined.core.calendar
WHERE MONTH(calendar_date) >= 1 AND MONTH(calendar_date) <= 6
)
评论
0赞
Malini Bakthavatchalam
10/9/2023
嘿克里斯,我确实尝试过这个 cte,但它仍然只给出 12 个月作为财政年度,而不是 18 个月。将 calen as ( SELECT calendar_date,fiscal_year_num FROM REFINED.CORE.CALENDAR UNION ALL SELECT calendar_date, fiscal_year_num + 1 FROM FINENED.CORE.CALENDAR 其中 MONTH(calendar_date) >= 1 和 MONTH(calendar_date) <= 6 ) select * from calen where calendar_Date >= '01/01/2022' 限制 500
0赞
Chris Albert
10/10/2023
呜呜。我犯了一个错误。更新了答案并发布了小提琴。
0赞
Malini Bakthavatchalam
10/10/2023
我不能看小提琴.有没有办法看它?
0赞
Malini Bakthavatchalam
10/10/2023
0 基本上 2022 年 1 月 - 2023 年 6 月应该是 2023 财年,2023 年 1 月 - 2024 年 6 月应该是 2024 财年,但我得到的是 2024 年 1 月 1 日,作为 2023 财年,这不是我想要的日期。
0赞
Malini Bakthavatchalam
10/10/2023
将 calen as ( SELECT calendar_date, fiscal_year_num FROM REFINED.CORE.CALENDAR UNION ALL SELECT calendar_date, fiscal_year_num - 1 FROM FINENED.CORE.CALENDAR 其中 MONTH(calendar_date) >= 1 和 MONTH(calendar_date) <= 6) select * from calen where fiscal_year_num = 2023 limit 1000
评论