sql >> Database >  >> RDS >> Sqlserver

SOM-functie wordt niet correct toegevoegd

Ik ben niet zeker van uw gegevenstype. Maar bekijk de volgende voorbeelden van geretourneerde waarden. In MSSQL 2012 lijkt uw situatie overeen te komen met het datatype REAL. Terwijl GELD, FLOAT, DECIMAAL, DUBBELE PRECISIE retour 72200.00 ECHT retourneert 72199.9998321533. Zie hieronder:

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

Misschien wilt u het kolomgegevenstype wijzigen (als het niet het gewenste type is, is het misschien per ongeluk ingesteld in het vervolgkeuzemenu van SQL Studio, enz.) of CAST de waarde als een van de bovenstaande gegevenstypes die de gewenste 72200.00



  1. Django Combineert __unaccent en __search zoekopdrachten

  2. Rails 3.2 + MySQL:Fout:Veld 'created_at' heeft geen standaardwaarde:INSERT INTO

  3. Vreemde SQLException:kolom niet gevonden

  4. PLS-00201:identifier 'R_CUR' moet worden gedeclareerd in dynamische sql