LEFT JOIN
का उपयोग करें यह सुनिश्चित करने के लिए, आपको किसी भी महीने का बिल न होने पर भी कंपनियों की पूरी सूची मिल जाती है।
- आपको मैन्युअल रूप से या स्क्रिप्ट का उपयोग करके n कॉलम बनाने होंगे।
- आप बस साधारण जॉइन कर सकते हैं, किसी सबक्वेरी की आवश्यकता नहीं है।
GROUP BY
का उपयोग करें प्रति कंपनी एकल रिकॉर्ड बनाने के लिए।
CASE WHEN
का उपयोग करें या IF ELSE
n कॉलम बनाने और केवल प्रासंगिक पंक्ति से डेटा लेने के लिए। यह पहली या कोई भी पंक्ति हो सकती है, इसलिए अन्य पंक्ति मानों को NULL
के रूप में बनाकर समूह के लिए किसी भी पंक्ति में डेटा लेने के लिए कुल फ़ंक्शन का उपयोग करें कुल फ़ंक्शन के रूप में शून्य मान शामिल नहीं हैं।
SELECT
u.display_name,
SUM(IF( bill_month='Jan2k19', package_price, NULL)) as first_bill,
SUM(IF( bill_month='Feb2k19', package_price, NULL)) as second_bill,
SUM(IF( bill_month='Mar2k19', package_price, NULL)) as third_bill
FROM bf_users u
LEFT JOIN bf_monthly_bill b on u.id=b.company_id
GROUP BY u.display_name;