Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SUM फ़ंक्शन सही ढंग से नहीं जुड़ता

मुझे आपके डेटाटाइप के बारे में निश्चित नहीं है। लेकिन दिए गए मानों के निम्नलिखित उदाहरण देखें। MSSQL 2012 में आपकी स्थिति डेटाटाइप REAL के अनुरूप प्रतीत होती है। जबकि पैसा, फ्लोट, दशमलव, डबल सटीक वापसी 72200.00 असली रिटर्न 72199.9998321533। नीचे देखें:

CREATE TABLE #tempso (Amount money, GRPS int);

INSERT INTO #tempso(Amount, GRPS) VALUES
('65025.00',355),
('-2500.00',355),
('7014.40',355),
('725.62',355),
('241.67',355),
('1209.57',355),
('241.87',355),
('241.87',355)

SELECT GRPS,SUM(Amount) AS AMT FROM #tempso GROUP BY  GRPS

ALTER TABLE #tempso ALTER COLUMN Amount float
SELECT GRPS,SUM(Amount) AS AMT FROM #tempso GROUP BY  GRPS

ALTER TABLE #tempso ALTER COLUMN Amount decimal(10,2)
SELECT GRPS,SUM(Amount) AS AMT FROM #tempso GROUP BY  GRPS

ALTER TABLE #tempso ALTER COLUMN Amount DOUBLE PRECISION
SELECT GRPS,SUM(Amount) AS AMT FROM #tempso GROUP BY  GRPS

        --------------- 
RETURNS:|355 72200.00 |
        ---------------

ALTER TABLE #tempso ALTER COLUMN Amount REAL
SELECT GRPS,SUM(Amount) AS AMT FROM #tempso GROUP BY  GRPS

        ----------------------  
RETURNS:|355 72199.9998321533 |
        ----------------------

DROP TABLE #tempso

आप कॉलम डेटाटाइप को बदलना चाह सकते हैं (यदि यह वांछित प्रकार नहीं है, तो शायद इसे एसक्यूएल स्टूडियो के ड्रॉपडाउन मेनू से गलती से सेट किया गया था) या उपरोक्त डेटाटाइप में से एक के रूप में मूल्य कास्ट करें जो वांछित 72200.00



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डिस्क I/O बाधाओं का निवारण करें

  2. SQL 2008:पूर्ण पाठ खोज क्वेरी के लिए शब्दों को रोकें बंद करें

  3. क्या टाइमस्टैम्प कॉलम अद्वितीय है?

  4. कीवर्ड 'current_timestamp' के पास गलत सिंटैक्स - लेकिन केवल एक डेटाबेस पर

  5. SQL सर्वर 2008 स्थापना