मेरे पास एक डेटा फ्लो के साथ एक एसएसआईएस पैकेज है जो एक ADO.NET डेटा स्रोत (केवल एक छोटी तालिका) लेता है, एक चयन * क्वेरी निष्पादित करता है, और क्वेरी परिणामों को एक फ्लैट फ़ाइल में आउटपुट करता है (मैंने बस खींचने की कोशिश की है पूरी तालिका और एक एसक्यूएल चयन का उपयोग नहीं)।एक फ्लैट फ़ाइल में '0.00' डालने के लिए मुझे एसएसआईएस डेटा प्रवाह कैसे प्राप्त होगा?
समस्या यह है कि डेटा स्रोत एक कॉलम खींचता है जो मनी डेटाटाइप है, और यदि मान शून्य नहीं है, तो यह टेक्स्ट फ्लैट फ़ाइल में ठीक है (जैसे '123.45'), लेकिन जब मान शून्य है , यह गंतव्य फ्लैट फ़ाइल में '.00' के रूप में दिखाई देता है। मुझे यह जानने की जरूरत है कि फ्लैट शून्य में अग्रणी शून्य वापस कैसे प्राप्त करें।
मैंने आउटपुट (फ्लैट फ़ाइल कनेक्शन मैनेजर में) के लिए विभिन्न डेटाटाइप की कोशिश की है, जिसमें मुद्रा और स्ट्रिंग भी शामिल है, लेकिन ऐसा कोई प्रभाव नहीं पड़ता है।
मैं अपने चयन में एक मामला बयान की कोशिश की है इस तरह,:
CASE WHEN columnValue = 0 THEN
'0.00'
ELSE
columnValue
END
(अभी भी '.00' में जो परिणाम)
मैं इस तरह है कि में बदलाव की कोशिश की है:
CASE WHEN columnValue = 0 THEN
convert(decimal(12,2), '0.00')
ELSE
convert(decimal(12,2), columnValue)
END
(फिर भी '.00' में जो परिणाम) और:
CASE WHEN columnValue = 0 THEN
convert(money, '0.00')
ELSE
convert(money, columnValue)
END
यह मूर्खतापूर्ण थोड़ा मुद्दा ('.0000000000000000000' में परिणाम) मेरे killin है '। क्या कोई मुझे बता सकता है कि शून्य मनी डेटाटाइप डेटाबेस मान को एक फ्लैट फ़ाइल में '0.00' के रूप में कैसे प्राप्त किया जाए?
मैं इस समस्या का कारण जानकर प्रसन्नता होगी - मैं वास्तव में नहीं हूँ व्युत्पन्न कॉलम हैक के साथ आरामदायक। – PeterX