【发布时间】:2017-09-06 16:22:30
【问题描述】:
我有以下要求,例如,以下查询应在 3 个条件下运行, 每天、每周和每月。
每天的行应该每天提供输出, 每周应该只在星期六给出输出。 Monthly 应该在第 1 个工作日输出,但如果第 1 天是星期六,则输出将在第 3 天输出,如果第 1 天是星期日,则输出应在第 2 天输出。
select * from Tablename 给了我 4 行以下
Status ID COL1 COL2
= = = = = = = = = = = =
Daily 12 100 150.2
Daily 17 90 120.6
Weekly 24 180 50.6
Monthly 25 150 155.2
现在我想按照上述要求显示这些数据
我通过下面的 SQL 获得了每日和每月的准确输出,但在每月方面需要帮助
Select * from Tablename
where
ID in (12,17) OR --daily
(DAYNAME(CURRENT DATE) = 'Saturday' AND ID = 24) --weekly
(TO_CHAR(DATE(CURRENT DATE)) = '01' AND ID = 25 AND DAYNAME(CURRENT DATE) NOT IN ('Saturday','Sunday')) --monthly
但我的每月逻辑没有给我预期的输出。
【问题讨论】: