Nejsem si jistý vaším datovým typem. Podívejte se ale na následující příklady vrácených hodnot. Zdá se, že v MSSQL 2012 vaše situace odpovídá datovému typu REAL. Zatímco PENÍZE, FLOAT, DECIMAL, DVOJNÁSOBNÁ PŘESNOST návratnost 72 200,00 SKUTEČNÉ vrátí 72199,9998321533. Viz níže:
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žná budete chtít změnit datový typ sloupce (pokud to není požadovaný typ, možná byl nastaven omylem z rozbalovací nabídky SQL Studia atd.) nebo CAST hodnotu jako jeden z výše uvedených datových typů, který vrátí požadovaný 72200,00