Nie jestem pewien co do twojego typu danych. Zobacz jednak poniższe przykłady zwracanych wartości. W MSSQL 2012 twoja sytuacja wydaje się odpowiadać typowi danych REAL. Podczas gdy PIENIĄDZE, FLOAT, DECIMAL, PODWÓJNA PRECYZJA powrót 7220.00 PRAWDZIWE zwraca 72199.9998321533. Zobacz poniżej:
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
Możesz chcieć zmienić typ danych kolumny (jeśli nie jest to pożądany typ, być może został ustawiony przez pomyłkę z rozwijanego menu SQL Studio itp.) lub CAST wartość jako jeden z powyższych typów danych, który zwróci pożądany 72200.00