मैं लिवेन के उत्तर से सहमत हूं कि उन सभी महीनों वाली एक तालिका बनाएं जिसमें आपको कभी भी आवश्यकता हो, और अपनी परिणाम तालिका में "बाएं जॉइन" का उपयोग करें। याद रखें, यह वास्तव में एक छोटी तालिका है, आपके पास प्रति वर्ष डेटा की केवल 365(ish) पंक्तियाँ हैं... और आप इस तालिका को प्रारंभ में पॉप्युलेट करने के लिए आसानी से कुछ कोड लिख सकते हैं
हम इसे यहां करते हैं, और यह बहुत सारे लाभ देता है, उदाहरण के लिए, निम्नलिखित फ़ील्ड के साथ एक मासिक डेटा तालिका की कल्पना करें (और कोई भी अन्य जिसके बारे में आप सोच सकते हैं!) एक निश्चित सीमा में सभी महीनों के लिए पूरी तरह से आबादी;
- तारीख (उदा. 2009-04-01)
- दिन (जैसे 1)
- सप्ताह का दिन (जैसे बुधवार)
- माह (जैसे 4)
- वर्ष (उदा. 2009)
- वित्तीय वर्ष (उदा. 2009/10)
- वित्तीय तिमाही (उदा. 2009Q1)
- कैलेंडर क्वार्टर (उदा. 2009Q2)
फिर इसे अपनी उपरोक्त क्वेरी के साथ इस प्रकार संयोजित करें;
SELECT `DT`.`myYear`, `DT`.`myMonth`, AVG(`myTable`.`value1`) as avg_value_1, AVG(`myTable`.`value2`) as avg_value_2 FROM `dateTable` as DT LEFT JOIN `myTable` ON `dateTable`.`myDate` = `myTable`.`save_date` WHERE `dateTable`.`myDate` BETWEEN '2009-01-01' AND '2009-07-01' GROUP BY `DT`.`myYear`, `DT`.`myMonth`
मेरे SQL कोड में कुछ त्रुटियाँ हो सकती हैं क्योंकि मैं परीक्षण तालिकाएँ बनाने में सक्षम नहीं हूँ, लेकिन आशा है कि आप मूलधन प्राप्त करेंगे और अपनी आवश्यकताओं के अनुरूप परिवर्तन करेंगे!
इसका उपयोग करके, आप अपने "ग्रुप बाय" क्लॉज को "डेटटेबल" टेबल में जो कुछ भी रखते हैं उसे बदल सकते हैं, जिससे आप वित्तीय तिमाही, महीने, दिन, सप्ताह के दिन आदि द्वारा आसानी से रिपोर्ट कर सकते हैं।
आशा है कि इससे मदद मिलेगी!