আমি আমার কাঙ্ক্ষিত ফলাফল পাওয়ার জন্য ফুল আউটারের সাথে যোগদানের আগে ব্যবহার করেছি, তবে সম্ভবত আমি ধারণাটি পুরোপুরি বুঝতে পারি না কারণ একটি সহজ যোগদানের কী হওয়া উচিত তা আমি সম্পাদন করতে সক্ষম নই।
আমার 2 টি সারণী রয়েছে (যা আমি টি 1 এবং টি 2 কল করব) প্রতি 2 টি ক্ষেত্র সহ:
T1
Policy_Number Premium
101 15
102 7
103 10
108 25
111 3
T2
Policy_Number Loss
101 5
103 9
107 20
আমি যা করার চেষ্টা করছি তা হ'ল উভয় টেবিল থেকে প্রিমিয়াম এবং ক্ষতির সমষ্টি এবং পলিসি_ নাম্বার। আমি যে কোডটি ব্যবহার করছি তা হ'ল:
select sum(premium) Prem_Sum, sum(Loss) Loss_Sum, t1.policynumber
from t1 full outer join t2 on t1.policynumber = t2.policynumber
group by t1.policynumber
উপরের কোডটি সঠিক যোগফলগুলি ফেরত দেবে তবে এটি "ন্যূনুয়াল" নীতি_নামারের অধীনে পলিসি_ সংখ্যার মিল নেই সেখানে সমস্ত রেকর্ডকে গ্রুপ করবে।
আমি আমার ফলাফলটি দেখতে চাই
Policy_Number Prem_Sum Loss_Sum
107 NULL 20
111 3 NULL
101 15 5
ইত্যাদি .....
আমি এমন কোনও ফলাফল চাই না যা নীচের মতো একটি নীতি নীতি_সংখ্যা দেখায় (যেহেতু কোনও নল পলিসি_নম্বরের মতো কিছুই নেই both উভয় টেবিলের পলিসি_সংখ্যার সাথে মেলে না তখন এটি মোট):
Policy_Number Prem_Sum Loss_Sum
NULL 35 NULL
আমি যদি সিলেক্ট হয়ে t1.policy_number এর পরিবর্তে t2.policy_number দ্বারা গ্রুপ করি তবে রেকর্ড হিসাবে নীচের মতো কিছু পাই।
Policy_Number Prem_Sum Loss_Sum
NULL NULL 20
আবার, আমি ভালবাসা_সামের অধীনে বা লস_সুমের অধীনে নুল দেখতে কোনও আপত্তি করি না তবে আমি নীতি_নামারের অধীনে কোনও নুল চাই না। আমি চাই আমার ফলাফলগুলি এমন কিছু হোক
Policy_Number Prem_Sum Loss_Sum
107 NULL 20
111 3 NULL
101 15 5
ect, .....
আমি ভেবেছিলাম সম্পূর্ণ বাইরের যোগদানটি এটি সম্পাদন করবে তবে আমি অনুমান করি যে আমি কিছু অনুপস্থিত। আমি ভাবছিলাম সম্ভবত আমি সাব কোয়েরি হিসাবে t1.policy_number এবং t2.policy_number উভয় দ্বারা নির্বাচন করে গ্রুপ করতে পারি এবং তারপরে সম্ভবত বাইরের ক্যোয়ারিতে একটি সিএসই বা কিছু করতে পারি ??? আমার মনে হয় না এটি জটিল হওয়া উচিত।
কোন ধারণা বা পরামর্শ?