2011-12-15 9 views
6

मैं एक रिपोर्टिंग पैकेज के अनुरूप SQL क्वेरी के भीतर प्रारूप का उपयोग करने का प्रयास कर रहा हूं। मेरे पास संख्याएं हैं जिन्हें मुझे दो दशमलव स्थानों के साथ मुद्रा के रूप में दिखाने की ज़रूरत है, इसलिए मैं इसे करने के लिए प्रारूप कमांड का उपयोग कर रहा हूं। समस्या यह है कि प्रारूप भी एक अल्पविराम में डालता है हजारों अलग करने के लिए और रिपोर्टिंग पैकेज योग समारोह इस संभाल नहीं कर सकते हैं ताकि पाठ के रूप में स्वरूपित संख्यात्मक मान व्यवहार करता है और में यह शामिल नहीं करता है क्वेरी का उपयोग करता है: -।MYSQL क्वेरी - प्रारूप का उपयोग करें लेकिन कोई कॉमा

SELECT customers.name AS "customers name", FORMAT(contracts.charge,2) AS "contracts charge" 
FROM customers 
ORDER BY customers.name 

(यदि संख्यात्मक मान 123.1 स्वरूपित उत्पादन 123.10 जो काम करता है है

-: वास्तविक क्वेरी एक बहुत अधिक जटिल है, लेकिन यह प्रासंगिक हिस्सा)

अधिक पूरी तरह से व्याख्या करने के लिए। हैं संख्यात्मक मान 1234.1 है स्वरूपित उत्पादन 1,234.10 जो

मैं 1234,10

बहुत धन्यवाद

उत्पादन करने के लिए क्वेरी को मनाने के लिए एक रास्ता खोजने की जरूरत है

उत्तर

14

तुम बस सकता है नहीं करता है:

REPLACE(FORMAT(contracts.charge, 2), ',', '') 
3

एक संभावित समाधान, प्रारूप के बाद अल्पविराम की जगह किया जाएगा:

REPLACE(FORMAT(contracts.charge,2),',','') AS "contracts charge" 
+0

बहुत धन्यवाद, कि खूबसूरती से –

0

इनवर्टर, दशमलव पर। मील स्थान (स्थान (स्थान) (स्थान, अनुबंध, 2), ',', '-'), ',', ','), '-', '।') AS contracts_charge

+0

काम वास्तव में वे ठीक से उनके स्थानीय सेटिंग किया जाना चाहिए, इस तरह मौजूदा फ़ॉर्मेट करने की स्ट्रिंग प्रतिस्थापन करने का प्रयास कर नहीं है। – Iguananaut

5

यह post एक अधिक स्वच्छ समाधान है लगता है:

बस ROUND उपयोग करते हैं, यह एक संख्यात्मक कार्य है। FORMAT एक स्ट्रिंग समारोह

संबंधित मुद्दे