我需要帮助在 bigquery 中编写 SQL 逻辑以根据以下条件替换一列中的值
财政年度 --> 7 月至 6 月
我怎样才能让它更有活力,以便明年滚动
Condition --> If version = "ACT" an DATE is not current year i.e 07-2020 to 06-2021 then replace ACT with ACTA
当前的:
版本 | 日期 |
---|---|
行为 | 202104 |
行为 | 202101 |
行为 | 202006 |
行为 | 202001 |
行为 | 202007 |
行为 | 201903 |
行为 | 202008 |
柏油 | 202104 |
柏油 | 202101 |
柏油 | 202006 |
柏油 | 202001 |
柏油 | 202007 |
柏油 | 201903 |
柏油 | 202008 |
所需输出:
版本 | 日期 |
---|---|
行为 | 202104 |
行为 | 202101 |
行为 | 202006 |
ACTA | 202001 |
行为 | 202007 |
ACTA | 201903 |
行为 | 202008 |
柏油 | 202104 |
柏油 | 202101 |
柏油 | 202006 |
柏油 | 202001 |
柏油 | 202007 |
柏油 | 201903 |
柏油 | 202008 |
如果 version = "ACT" 日期不是当前年份,即 07-2020 到 06-2021 然后用 ACTA 替换 ACT
你想要一个case
表达式:
select (case when version = 'ACT' and
extract(year from date_add(date, interval 6 month)) = extract(year from date_add(current_date, interval 6 month))
then 'ACTA'
else version
end)
逻辑是添加六个月并提取年份以获得财政年度。对当前日期执行相同操作。如果这些相同,则该date
列位于当前会计年度。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句