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

时间:2018-09-12 11:54:09

标签: hive hiveql

我目前正在处理有关HIVE的查询,并正在使用SQL Workbench。我想每月从2个表中获取数据。为了引用日期,我使用了另一个包含两列的表:start_Dateend_datestart_Date包含 month 开始日期,即01/01/2018。同样,end_date包含 month 结束日期,即31/01/2018。

查询内容如下:

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)
                        );

但显然它不起作用。

有人可以给我一个解决这个问题的正确方法吗?

让我知道是否有任何疑问。

1 个答案:

答案 0 :(得分:0)

我认为这样可以帮助您:

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 ;

由于您尚未发布示例数据,所以我没有测试过代码,但我希望它能对您有所帮助。