2013-07-05 91 views
0

有沒有辦法在HiveQL做到這一點:HiveQL:使用select在where子句中

SELECT ......  

from 
     default.thm_renta_produits_jour rpj 
     WHERE 
      rpj.co_societe = '${hiveconf:in_co_societe}' 
     AND rpj.dt_jour >= (SELECT MIN(dt_jour) FROM default.calendrier WHERE co_an_semaine = '${hiveconf:in_co_an_sem}') 

,因爲當我這樣做,我得到這個錯誤:

FAILED: ParseException line 51:26 cannot recognize input near 'SELECT' 'MIN' '(' in expression specification 

感謝,

回答

0

配置單元不支持WHERE子句中的子查詢。也許你可以解決此移動你的子查詢到JOIN條款,像這樣:

SELECT 
    rpj.* 
FROM 
    default.thm_renta_produits_jour rpj 
JOIN 
    ( SELECT MIN(dt_jour) AS min_dt_jour 
     FROM default.calendrier 
     WHERE co_an_semaine = '${hiveconf:in_co_an_sem}' 
    ) m 
WHERE 
    rpj.co_societe = '${hiveconf:in_co_societe}' 
    AND rpj.dt_jour >= m.min_dt_jour; 

希望有所幫助。