sql server - Coalesce FETCHING 0 ROWS inside stored procedure but fetches result as a query -
नमूना डेटा
srno उत्पादनाम StartDate AStartdate pStartdate 1 नया 11-11-2010 11- 11-2010 11-11-2010 2 पुराने 01-01-2011 11-11-2011 09-11-2010 3 माध्यम 01-01-2012 01-01-2012 16-07-2012 4 बाहर 01-08-2012 16 -01-2012 16-07-2012 मेरी क्वेरी
वैकल्पिक प्रक्रिया [dbo]। [Status_yearly] (@MID NVARCHAR (अधिकतम)) के रूप में आरंभ करें (अधिकतम) SELECT @Years = Stuff ((चुनें SELECT DISTINCT ', [' + Cast (वर्ष (यू। स्टार्टडेट) एन.वी.आरएआरएआर (4)) + ']' से [उत्पादों] xml पथ के लिए (' '), 1, 1,' ') DECLARE @date nvarchar (अधिकतम) SET @date = CONVERT (VARCHAR (10), GETDATE (), 105) - SELECT DECLARE @ SQL nvarchar (अधिकतम) SELECT @ SQL उत्पाद से [y] के रूप में 'उत्पाद' 'एएस स्थिति,' 'कुल उत्पाद' 'के रूप में [YEAR], उत्पादनाम, वर्ष (यू। स्टार्टडेट) चुनें और कहां मिड =' '' + + एमआईडी + '' और यू.फ्लैग & lt; & gt; डेटा) PIVOT (COUNT (उत्पादनाम) के लिए [y] में ('+ + वर्ष +')) PivotTable UNION ALL चुनें * से (चयन करें '' समाप्त '' के रूप में) उत्पादों में से यू के रूप में [YEAR], कोलासेस (COUNT (उत्पादनाम), 0) एसे प्रॉडप्सेज, कोलासेस (COUNT (वर्ष (यू। स्टार्टडेट)), 0) के रूप में [यू] के रूप में यू.ए.एस.टी. नहीं है और यू.एएसटीर्टडेट = यूपीएस स्टार्टडेट और एमआईडी = '' '+ एमआईडी +' ') डेटा पीआईवीओटी (के लिए (उत्पादनाम) (वाईफ़ाई) में [या] (' + + साल '+')) पीवोटटेबल 'एक्सीट (@ एसक्यूएल) ईडी यह मुझे परिणाम देता है <पूर्व> स्थिति वर्ष 2012 उत्पाद कुल_उत्पादन 4 समय में समाप्त हो गया 0
चुनें '' समाप्त 'एएस फाइन', 'टाइम इन' 'के रूप में [YEAR], कोलासेस (COUNT (उत्पादनाम), 0) एसे उत्पादनाम, कोलासेस (COUNT (वर्ष (यू। स्टार्टडेट)), 0) उत्पादों के रूप में [वाई] के रूप में WHERE U.AStartdate नल नहीं है और u.AStartdate = u.partartate और MID = '' '+ @ MID +' '' यह मुझे दे रहा है जैसे
समाप्त वर्ष उत्पादनाम वाई पूर्ण समय 1 1 व्यक्तिगत रूप से मुझे 1 के रूप में गणना देता है, लेकिन जब संग्रहीत कार्यविधि के अंदर निष्पादित हो जाता है तो मुझे 0 देता है।
अतः कैसे क्या मैं इसे प्रक्रिया के अंदर लागू करूँ? कृपया कुछ समय का ध्यान रखें कि 'समाप्त' ब्लॉक में कोई भी परिणाम न हो, इसलिए मैं
कोलासेस (COUNT (उत्पादनाम), 0) के रूप में उत्पादनाम, कोलास (COUNT (वर्ष) का उपयोग कर रहा हूं। डेटाबेस एसक्यूएल सर्वर है
इस तथ्य के अलावा कि आपके नमूना डेटा में फ़्लैग और मध्य स्तंभ ( मुझे लगता है कि यह है COUNT (productsname) होना चाहिए COUNT (उत्पाद का नाम) ( s हटा दिया गया है)।
Comments
Post a Comment