选择不同的 PROPHIX_TIME,W_EXCH_RATE_YTD_ME_AVG_G.*,“欧元”TO_CUR 从 W_MCAL_DAY_D 开始 内连接 W_EXCH_RATE_YTD_ME_AVG_G ON MCAL_PERIOD = PD 地点 MCAL_YEAR IN(2019 年, 2020年, 2021年, 2022年, 2023年, 2024)
值在上述代码的 where 子句中被硬编码。 如果当前日期是 2025 年 1 月 1 日,则必须在 where 子句中添加其他年份。 例如 WHERE MCAL_YEAR IN (2019, 2020年, 2021年, 2022年, 2023年, 2024年, 2025年,......等等)
就像 WHERE MCAL_YEAR IN (2019, 2020年, 2021年, 2022年, 2023年, 2024年, 2025年,......等等)
看起来像行生成器问题。
假设起始年份是 2019 年,那么您可能使用的查询(因为今天是 2 月 22 日2024,即
sysdate
(没有时间部分))是
SQL> select 2019 + level - 1 as year
2 from dual
3 connect by level <= extract(year from sysdate) - 2019 + 1;
YEAR
----------
2019
2020
2021
2022
2023
2024
6 rows selected.
SQL>
或者,就你而言,
SELECT DISTINCT prophix_time, w_exch_rate_ytd_me_avg_g.*, 'EUR' to_cur
FROM w_mcal_day_d INNER JOIN w_exch_rate_ytd_me_avg_g ON mcal_period = pd
WHERE mcal_year IN ( SELECT 2019 + LEVEL - 1 AS year
FROM DUAL
CONNECT BY LEVEL <= EXTRACT (YEAR FROM SYSDATE) - 2019 + 1);
你从来没有说过为什么列表从2019年开始;如果这是硬编码,则保持原样。如果没有,请以某种方式获取它。