Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

पिछले 3 महीने के डेटा को अलग-अलग कॉलम के रूप में प्राप्त करें, प्रत्येक उपयोगकर्ता के लिए पंक्तियाँ नहीं

  1. LEFT JOIN का उपयोग करें यह सुनिश्चित करने के लिए, आपको किसी भी महीने का बिल न होने पर भी कंपनियों की पूरी सूची मिल जाती है।
  2. आपको मैन्युअल रूप से या स्क्रिप्ट का उपयोग करके n कॉलम बनाने होंगे।
  3. आप बस साधारण जॉइन कर सकते हैं, किसी सबक्वेरी की आवश्यकता नहीं है।
  4. GROUP BY का उपयोग करें प्रति कंपनी एकल रिकॉर्ड बनाने के लिए।
  5. 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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रेल ऐप त्रुटि - ActiveRecord ::PendingMigrationError माइग्रेशन लंबित हैं; इस समस्या को हल करने के लिए 'रेक डीबी:माइग्रेट RAILS_ENV=Development' चलाएँ

  2. एकाधिक विदेशी कुंजी?

  3. MySql के साथ इकाई फ्रेमवर्क 6 का उपयोग करके DbUpdateConcurrencyException

  4. MySQL:लापता ऑर्डर आईडी का पता लगाएं

  5. 2006 त्रुटि:MySQL सर्वर पायथन, बॉटल माइक्रोफ्रेमवर्क और अपाचे का उपयोग करके चला गया है