मुझे लगता है कि मैं यहाँ एक कठिन एक है तक को शामिल करें ... :(समूह में गायब महीने क्वेरी
मैं जब महीने के आदेश संख्या प्राप्त करने के लिए कोशिश कर रहा हूँ, यहाँ तक कि शून्य यहाँ समस्या क्वेरी है:।
SELECT datename(month, OrderDate) as Month, COUNT(OrderNumber) AS Orders
FROM OrderTable
WHERE OrderDate >= '2012-01-01' and OrderDate <= '2012-06-30'
GROUP BY year(OrderDate), month(OrderDate), datename(month, OrderDate)
क्या मैं पाने के लिए देख रहा हूँ कुछ इस तरह है:।
Month Orders
----- ------
January 10
February 7
March 0
April 12
May 0
June 5
... लेकिन मेरी क्वेरी मार्च और मई के लिए एक पंक्ति को छोड़ देता है मैं COALESCE(COUNT(OrderNumber), 0)
और ISNULL(COUNT(OrderNumber), 0)
की कोशिश की है, लेकिन मैं बहुत यकीन है कि समूह सीए है इसका उपयोग करने के लिए नहीं।
ऐसा लगता है कि 'OrderTable' मार्च या मई के लिए कोई रिकॉर्ड है, तो अकेले इस तालिका से चयन उन महीनों के लिए एक परिणाम नहीं लौटा सकता। संभावित कार्य-आस-पास: यदि आपके डेटाबेस में तिथियों की एक मास्टर टेबल है, तो आप इसका लाभ उठा सकते हैं, या आप फ्लाई पर अपनी तिथियों की अपनी तालिका बना सकते हैं। –
@andyholaday की तरह कहा - जनवरी के साथ एक लुकअप टेबल बनाएं ... दिसंबर और बाएं से जुड़ें, और आपको गुम महीनों मिलेंगे। – kd7