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

CASE का उपयोग करके SQL अनुरोध कैसे करें

बहुत सी चीजें गलत हैं, यह जानना मुश्किल है कि कहां से शुरू करें।

आप CASE . के दो रूपों को मिला रहे हैं अभिव्यक्ति। एक रूप है:

CASE <expression>
    WHEN <value> THEN <result>
    WHEN <value> THEN <result>
    ...
END

दूसरा है:

CASE
    WHEN <condition> THEN <result>
    WHEN <condition> THEN <result>
    ...
END

आप एक SELECT . का उपयोग करने का प्रयास कर रहे हैं एक मान के रूप में क्वेरी करें, लेकिन इसमें FROM . मौजूद नहीं है क्लॉज और आपको एक क्वेरी को मूल्य के रूप में उपयोग करने के लिए कोष्ठक में लपेटना होगा। मुझे संदेह है कि आप इसे उसी तालिका से पूछताछ करना चाहते थे, इस मामले में आपको सबक्वायरी नहीं करनी चाहिए, आपको मुख्य क्वेरी में केवल एकत्रीकरण फ़ंक्शन का उपयोग करना चाहिए।

CASE एक्सप्रेशन SELECT . का हिस्सा होना चाहिए सूची, FROM . के बाद नहीं खंड।

यदि आप प्रत्येक मामले के लिए आउटपुट में अलग कॉलम बनाना चाहते हैं, तो वे एक CASE में नहीं हो सकते हैं अभिव्यक्ति।

आपके सभी टेबल और कॉलम नाम दोहरे उद्धरण चिह्नों में हैं, MySQL नामों को उद्धृत करने के लिए बैकटिक्स का उपयोग करता है।

आपको SELECT DISTINCT . की आवश्यकता नहीं है GROUP BY . का उपयोग करते समय ।

आप SELECT . में किसी उपनाम का उल्लेख नहीं कर सकते GROUP BY . को छोड़कर, उसी क्वेरी में सूची बनाएं , ORDER BY , और HAVING

यह होना चाहिए:

SELECT MONTH(Facturation) AS month, LRU, Client,
    AVG(CASE WHEN MONTH(Factuation) = 1 AND Facturation BETWEEN 1 AND 6
        THEN Montant_fac_eur END) AS c1,
    AVG(CASE WHEN MONTH(Factuation) = 2 AND Facturation BETWEEN 2 AND 7
        THEN Montant_fac_eur END) AS c2,
    AVG(CASE WHEN MONTH(Factuation) = 3 AND Facturation BETWEEN 3 AND 8
        THEN Montant_fac_eur END) AS c3,
    AVG(CASE WHEN MONTH(Factuation) = 4 AND Facturation BETWEEN 4 AND 9
        THEN Montant_fac_eur END) AS c4,
    ...
FROM foundry_sync.data
GROUP BY `LRU`, `Client`, `Facturation`
ORDER BY Client, month


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL कस्टम ऑर्डर

  2. MySQL शॉपिंग कार्ट संरचना

  3. c9.io - नोड.जेएस प्लेटफॉर्म में एक mysql कनेक्शन बनाने के लिए होस्ट एड्रेस कैसे खोजें

  4. राशि प्राप्त करने के लिए रिकॉर्ड कैसे अलग करें

  5. एकाधिक कॉलम में एकाधिक आइटम खोजें