sql - 3 joins and where clause together -


मेरे पास 3 टेबल हैं

  bl_main (bl_id unique, bl_area) bl_details (bl_id unique, नाम) bl_data (bl_id, month, paper_tons, bottles_tons)  

bl_id अंतिम तालिका में अद्वितीय नहीं है उसी की कई पंक्तियां होंगे bl_id

मैं निम्नलिखित तरीके से डेटा को पुनः प्राप्त करने का प्रयास कर रहा हूं

  bl_id | नाम | Bl_area | राशि (पेपर_टोन) | राशि (बोतलें_टन) | पेपर_टाउन | bottles_tons  

<कोड> योग (paper_tons) ही bl_id जनवरी की तरह दिसंबर तक के लिए सभी कागज टन की राशि वापस आ जाएगी।

नीचे दिए गए क्वेरी का उपयोग करके मैं परिणाम के अलावा सभी डेटा ठीक से प्राप्त कर सकता हूं, bl_ids (bl_data तालिका से) के कई घटनाएं हैं।

  का चयन करें bl_main.bl_id, नाम, bl_area, sums.SummedPaper, sums.SummedBottles, paper_tons, bl_main से bottles_tons पर bl_main.bl_id = bl_details.bl_id छोड़ दिया बाहरी bl_details शामिल हों शामिल हों bl_data पर bl_data.bl_id = छोड़ दिया bl_main.bl_id बाहरी JOIN (bl_id का चयन करें, SUM (Paper_tons) SummedPaper के रूप में, योग (bottle_tons) SummedBottles रूप bl_data से  

bl_id द्वारा ग्रुप) रकम पर sums.bl_id = bl_main.bl_id

मुझे पुनरावृत्ति के बिना bl_ids के केवल अनूठे मूल्यों को प्राप्त करना है और इसमें bl_id होना चाहिए जिसमें अधिकतम महीना है और समान bl_id के सभी महीनों तक नहीं।

पूर्व के लिए:

  गलत ** 0601 ** विश्वविद्यालय हॉल 75.76 17051 1356 4040 1154 ** 11 ** ** 0601 ** विश्वविद्यालय हॉल 75.76 17051 1356 9190 101 ** 12 ** ** 0605 ** यूआईसी छात्र 22.86 3331 1479 9 0 356 ** 8 ** सही ** 0601 ** विश्वविद्यालय हॉल 75.76 17051 1356 91 9 101 101 ** 12 ** ** 0605 ** यूआईसी छात्र 22.86 3331 14799 0 356 ** 8 **  

मुझे पता है कि मैं

  का उपयोग कर अधिकतम मूल्य प्राप्त कर सकता हूँ महीना = (चुनें अधिकतम (महीना)  

लेकिन जहां exactlt मैं प्रश्न में यह जोड़ना चाहिए और मैं बदलना चाहिए परिभाषा में शामिल हो। किसी भी मदद अत्यधिक सराहना की जैसा कि मैंने पहले से करने के लिए एसक्यूएल। धन्यवाद नया हूँ।

< P>

आपके पास दो तालिकाओं हैं जिन्हें शायद एक ( bl_main और bl_details ) में जोड़ दिया जाना चाहिए । लेकिन एक तरफ डालकर, आपको जो कुछ चाहिए, वह एक स्वयं-जुड़ने वाला उप-भाग है जिसे अधिकतम के साथ पंक्ति चुनना है महीना।

  का चयन करें bl_main.bl_id, bl_details.name, bl_main.bl_area, sums.sum_paper_tons, sums.sum_bottles_tons, maxmonth.paper_tons, maxmonth.bottles_tons से bl_main अंदरूनी शामिल हों: जैसे निम्नलिखित (untested) कुछ Bl_main.bl_id पर bl_main.bl_id = bl_details.bl_id जोड़ें (चयन करें bl_id, sum (paper_tons) sum_paper_tons, sum (bottles_tons) के रूप में sum_bottles_tons bl_data ग्रुप से bl_id द्वारा) bl_main.bl_id = sums.bl_id पर sums जमा करें (चयन करें bl_id , कागज_टोन, बोतल_टोन से bl_data data2 इन्नेर से जुड़ें (चयन करें bl_id, MAX (महीना) as max_month bl_data GROUP से bl_id) m पर एम.बी_आईडी = डेटा2.bl_id और m.max_month = data2.month) maxmonth पर bl_main.bl_id = maxmonth .bl_id  

Comments

Popular posts from this blog

c++ - Linux and clipboard -

What is expire header and how to achive them in ASP.NET and PHP? -

sql server - How can I determine which of my SQL 2005 statistics are unused? -