如何使用日期BETWEEN运算符关联无连接的GL_PERIOD表与WORK视图查询数据
解决方案
如果你的WORK视图是存储全局财年配置的单行视图,直接使用交叉关联即可完成需求,改写后的SQL如下:
SELECT gp.FISCAL_START, gp.DESCRIPTION, CASE WHEN w.ENTER_DATE BETWEEN gp.FISCAL_START AND gp.FISCAL_END THEN gp.DESCRIPTION ELSE 'Test Failed' END AS matched_description FROM GL_PERIOD gp CROSS JOIN WORK w
逻辑说明
- 用
CROSS JOIN关联无关联的WORK视图和GL_PERIOD表,即可直接引用WORK内的字段替换原有硬编码日期值 - 判断逻辑完全匹配需求:校验
WORK视图的ENTER_DATE是否落在GL_PERIOD对应的财年区间内,命中就返回对应期间描述,否则返回Test Failed
注意:如果
WORK视图存在多行配置数据,请先添加过滤条件锁定你需要的目标配置行,避免产生多余的笛卡尔积数据,影响查询结果。
内容的提问来源于stack exchange,提问作者Moses76
相关产品推荐
相关产品推荐

