【问题标题】:Select Data using date between operator and two unconnected tables使用运算符和两个未连接表之间的日期选择数据
【发布时间】:2021-11-14 12:00:54
【问题描述】:

我正在努力解决这种情况。以下代码可以正常工作。

SELECT FISCAL_START, DESCRIPTION,
       CASE WHEN FISCAL_START BETWEEN DATE'2014-03-31' AND DATE'2014-09-29' THEN DESCRIPTION
            ELSE 'Test Failed'
       END 
FROM GL_PERIOD

我想要实现的目标如下,而不是硬编码日期 2014-03-31 和 2014-09-29..需要用列名 FISCAL_STARTFISCAL_END 替换那些来自未连接的日期查看电话WORK

伪代码如下...

显示来自GL_PERIOD 的描述,其中ENTER_DATE(位于WORK 视图中)介于FISCAL_STARTFISCAL_END 之间。任何帮助将不胜感激。

【问题讨论】:

  • 您能否添加表格、视图和所需结果的示例?每行2-3行。还标记您正在使用的数据库。
  • SrNo. FiscalStart FiscalEnd 说明
  • SNo.- FisStart - FisEnd - 描述 1 - 01/04/2021- 04/30/2021 - Apr2021 2 - 01/05/2021 - 05/31/2021 - May2021 3 - 01/ 06/2021 - 06/30/2021- Jun2021 GL_period
  • SrNo Entry_Date Work OrderNumber Balance 1 04/04/2021 SR123456 10.00$ 2 04/05/2021 SR12789 15.00$ 3 15/06/2021 SR18960 23.00 $ 使用 Oracle 11g。

标签: date between


【解决方案1】:

我认为您需要这个,我只是继续您的查询以添加缺少的部分:

这里是 sqlfiddle,它将向您展示实时示例:fiddle example

SELECT "FisStart", "Descripton",
       CASE WHEN "Entry_Date" 
             BETWEEN "FisStart"
               AND "FisEnd"
         THEN "Descripton"
         ELSE 'Test Failed'
       END 
FROM GL_PERIOD
INNER JOIN WORK USING USING ("SrNo")

【讨论】:

  • 不幸的是 SrNo 列不是 WORK Table 的主键。我真的希望它是..它本来是一个直接的加入,但它不是。非常感谢 Yair 我花时间回答这个问题。你还能想到什么?
  • 你能从你写的数据中添加一个例子吗?运行查询后的结果是什么?
  • 就是这里。选择 v.* ,(从 GL_PERIOD g 中选择描述,其中 ENTRY_DATE BETWEEN g.FISCAL_START AND g.FISCAL_END ) Period_description FROM VIEW_WIP_VAL_DETAILS v
猜你喜欢
  • 2012-10-31
  • 2012-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-13
  • 2015-07-10
  • 1970-01-01
相关资源
最近更新 更多