Non riesco a superare il controllo di uguaglianza utilizzando la query HIVE riportata di seguito.Errore nella query hive durante l'unione alle tabelle
Ho 3 tavolo e voglio unirmi a questo tavolo. Ho provare come sotto, ma ottenere errore:
FALLITA: Errore in analisi semantica: Linea 3:40 alias Sia a destra ea sinistra incontrate nel ENTRA '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);
a cura basata su aiuto da FuzzyTree:
1a:
Abbiamo provato a modificare la query sopra utilizzando tra e la clausola where, ma non ottenendo alcun output dalla query.
Ma se abbiamo modificato la query precedente rimuovendo la clausola between con date, ho ottenuto un output basato su "v3.adv_price < = t3.comp_price", ma non utilizzando "date filter".
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);
2 °:
Poi si cerca di far passare una sola data:
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);
Così, ora sta mostrando qualche risultato, ma se passiamo sia il filtro di inizio e fine oggi, ; non mostrando alcun risultato.
ho curato la query basata sul vostro aiuto, ma ancora in grado di ottenere l'output dalla query. Ho aggiornato il mio post originale. – Abhi
Ho riscontrato lo stesso problema. La soluzione suggerita è buona. Prendo atto tuttavia che il messaggio di errore potrebbe essere migliorato. È fuorviante. – paolov