对于 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 抄错了查询。现在它已经更新和更正了。