如何在带有select语句的where子句中使用comaprison运算符?

jchrr9hc  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(262)

我目前正在hive上使用sqlworkbench进行查询。我想每月从两个表中获取数据。为了引用日期,我使用了另一个包含两列的表: start_Date 以及 end_date . start_Date 包含月份和开始日期,即2018年1月1日。同样地 end_date 包含月份和结束日期,即2018年1月31日。
查询结果如下:

select *
from table1 a join
     table2 b
     on a.pkey = b.pkey
where effective_date >= (select start_Date
                         from date_table
                         where year(start_date) = year(current_date) and month(start_date) = month(current_date)
                        );

但很明显,这是行不通的。
有人能给我一个解决这个问题的正确方法吗?
如果有任何疑问,请告诉我。

9avjhtql

9avjhtql1#

我认为这样的事情可以帮助你:

SELECT *
FROM table1 a
JOIN table2 b
ON a.pkey = b.pkey
JOIN (SELECT start_Date
      FROM date_table
      WHERE year(start_date) = year(current_date)
      AND month(start_date) = month(current_date)
      ) dt
ON a.effective_date >= dt.start_date ;

我还没有测试代码,因为您还没有发布示例数据,但我希望它能有所帮助。

相关问题