根据年、月、季度提取数据[关闭]
Posted
技术标签:
【中文标题】根据年、月、季度提取数据[关闭]【英文标题】:Pulling data based on year, month, quarter [closed] 【发布时间】:2020-05-12 04:02:39 【问题描述】:我有一个如下的输入和输出表。输入表每天更新。我需要找到上一个财政年度、上个月、上一季度的值。我写了下面的查询来查找上一个财政年度的值。
当 ReportFinancialYear = 'FY19' then Value else null end as previous_financial_year_value 的情况
但我想使用 ReportFinancialYear = current Financial Year-1,类似这样。其余的类似公式。谁能帮忙。
enter image description here
【问题讨论】:
mysql 还是 BigQuery? @Tim,BigQuery 【参考方案1】:对于 BigQuery 标准 SQL
有点长,但我测试并完成了这项工作。
上一财政年度:
(CASE
WHEN CAST(REPLACE(UPPER(ReportFinancialYear), "FY", "") AS INT64) + 2000 = EXTRACT(YEAR FROM CURRENT_DATE) - 1 THEN Value
ELSE NULL
END) AS previous_financial_year_value
上一财季:
(CASE
WHEN ((CAST(REPLACE(UPPER(ReportFinancialYear), "FY", "") AS INT64) + 2000 = EXTRACT(YEAR FROM CURRENT_DATE) - 1) AND (CAST(REPLACE(UPPER(ReportFinancialQuarter), "Q", "") AS INT64) = 4) AND (EXTRACT(QUARTER FROM CURRENT_DATE) = 1)) OR (CAST(REPLACE(UPPER(ReportFinancialYear), "FY", "") AS INT64) + 2000 = EXTRACT(YEAR FROM CURRENT_DATE) AND (CAST(REPLACE(UPPER(ReportFinancialQuarter), "Q", "") AS INT64) = EXTRACT(QUARTER FROM CURRENT_DATE) - 1)) THEN Value
ELSE NULL
END) AS previous_financial_quarter_value
上个月:
(CASE
WHEN ReportMonth = DATE_SUB(DATE_TRUNC(CURRENT_DATE, MONTH), INTERVAL 1 MONTH) THEN Value
ELSE NULL
END) AS previous_financial_month_value
编辑
由于您还要求当前季度:
(CASE
WHEN (CAST(REPLACE(UPPER(ReportFinancialYear), "FY", "") AS INT64) + 2000 = EXTRACT(YEAR FROM CURRENT_DATE)) AND (CAST(REPLACE(UPPER(ReportFinancialQuarter), "Q", "") AS INT64) = EXTRACT(QUARTER FROM CURRENT_DATE)) THEN Value
ELSE NULL
END) AS current_financial_quarter_value
注意:我从 previous_financial_quarter_value 抄错了查询。现在它已经更新和更正了。
【讨论】:
@丹尼尔,非常感谢。我还想查看当前季度的价值。请给我一个提示。 我添加了当前季度的查询。我还错误地复制了上一季度的查询。现在是正确的。 @丹尼尔,非常感谢。很有帮助。 @Nrad 很高兴它有帮助。不过不要忘记接受答案。这对我有很大帮助。 @Daniel,嗨,Daniel,使用相同的输入表,我想再得到两个东西。 1) 当 ReportFinanacial Quarter 是当前财政年度和当前季度时,FYQuarterToDate = "true",否则为 "false"。 2) 前一周的值。你能帮忙吗?非常感谢。以上是关于根据年、月、季度提取数据[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
excel中求日期减掉上一个季度末月的20日,也就是两者之间的天数。