Tôi không chắc về kiểu dữ liệu của bạn. Nhưng hãy xem các ví dụ sau về các giá trị trả về. Trong MSSQL 2012, tình huống của bạn dường như tương ứng với kiểu dữ liệu REAL. Trong khi TIỀN, FLOAT, DECIMAL, ĐÔI CHÍNH XÁC trả lại 72200,00 REAL trả về 72199.9998321533. Xem bên dưới:
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
Bạn có thể muốn thay đổi kiểu dữ liệu cột (nếu nó không phải là kiểu mong muốn, có lẽ nó đã được đặt nhầm từ menu thả xuống của SQL Studio, v.v.) hoặc CAST giá trị là một trong các kiểu dữ liệu ở trên sẽ trả về mong muốn 72200,00