Как использовать операторы comaprison в предложении where с оператором select? - PullRequest
0 голосов
/ 12 сентября 2018

В настоящее время я работаю над запросом на HIVE и использую SQL Workbench.Я хочу получать данные из 2 таблиц ежемесячно.Для ссылки на даты я использую другую таблицу с двумя столбцами: start_Date и end_date.start_Date содержит месяц и начальная дата , т.е. 01/01/2018.Точно так же end_date содержит месяц и дата окончания , т. Е. 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 голосов
/ 12 сентября 2018

Я думаю, что что-то вроде этого может помочь вам:

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 ;

Я не проверял код, так как вы не опубликовали примеры данных, но я надеюсь, что это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...