Я не могу пройти проверку равенства, используя нижеприведенный запрос HIVE.
У меня 3 таблицы, и я хочу присоединиться к этой таблице. Я пытаюсь, как показано ниже, но получаю ошибку:
FAILED: ошибка в семантическом анализе: строка 3:40. И левые, и правые псевдонимы, встречающиеся в JOIN 'visit_date'
select t1.*, t99.* from table1 t1 JOIN
(select v3.*, t3.* from table2 v3 JOIN table3 t3 ON
( v3.AS_upc= t3.upc_no AND v3.start_dt <= t3.visit_date AND v3.end_dt >= t3.visit_date AND v3.adv_price <= t3.comp_price ) ) t99 ON
(t1.comp_store_id = t99.cpnumber AND t1.AS_store_nbr = t99.store_no);
EDITED на основе справки FuzzyTree:
первый:
Мы попытались отредактировать выше запрос, используя предложение from и where, но не получив никакого вывода из запроса.
Но Если мы изменили вышеуказанный запрос, удалив предложение inter с датой, я получил некоторый результат на основе "v3.adv_price <= t3.comp_price", но не использовал "фильтр даты".
select t1.*, t99.* from table1 t1 JOIN
(select v3.*, t3.* from table2 v3 JOIN table3 t3 on (v3.AS_upc= t3.upc_no)
where v3.adv_price <= t3.comp_price
) t99 ON
(t1.comp_store_id = t99.cpnumber AND t1.AS_store_nbr = t99.store_no);
2nd:
Затем мы попытались передать только одну дату:
select t1.*, t99.* from table1 t1 JOIN
(select v3.*, t3.* from table2 v3 JOIN table3 t3 on (v3.AS_upc= t3.upc_no)
where v3.adv_price <= t3.comp_price and v3.start_dt <= t3.visit_date
) t99 ON
(t1.comp_store_id = t99.cpnumber AND t1.AS_store_nbr = t99.store_no);
Итак, теперь он показывает некоторый результат, но если мы передадим фильтр даты начала и окончания, он; не показывая никакого результата.