2016-03-11 11 views
5

में दिनांक सीमा पर टेबल्स में शामिल हों, मुझे table_ में tableB में tableB में शामिल होना होगा और तालिका से cal_date को तालिका बी से दिनांक प्रारंभ और दिनांक अंत के बीच होना आवश्यक है। मैं क्वेरी के नीचे भाग गया और त्रुटि संदेश से नीचे प्राप्त हुआ, क्या आप कृपया मुझे सही करने और क्वेरी करने में मदद करें। मदद के लिए शुक्रिया!हाइव

जॉइन 'date_start' में दोनों बाएं और दाएं उपनाम सामने आए।

select a.*, b.skill_group 
from tableA a 
    left join tableB b 
    on a.employee_id= b.employee_id 
    and a.cal_date >= b.date_start 
    and a.cal_date <= b.date_end 
+0

b.date_start और b.date_end' –

+0

के बीच 'a.cal_date का उपयोग करें अपने इनपुट के लिए धन्यवाद। मैंने आपको वाक्यविन्यास के साथ समान त्रुटि दी। जॉइन 'डेट_एंड' में दोनों बाएं और दाएं उपनाम सामने आए – Mixer

उत्तर

3

RTFM - हवाले से LanguageManual Joins

हाइव की स्थिति है कि समानता की स्थिति के रूप में यह बहुत मुश्किल है/एक नक्शे के रूप में इस तरह की स्थितियों को व्यक्त काम कम करने के लिए नहीं कर रहे हैं में शामिल होने का समर्थन नहीं करता।

आप एक कहां खंड के लिए फिल्टर के बीच ले जाने में एक घटिया आंशिक रूप से कार्तीय-शामिल होने के बाद प्रसंस्करण सफाई के बाद, जिसके परिणामस्वरूप कोशिश कर सकते हैं। छी। आपके "कौशल समूह" तालिका की वास्तविक कार्डिनालिटी के आधार पर, यह तेजी से काम कर सकता है - या पूरे दिन ले सकता है।