sql >> データベース >  >> RDS >> Sqlserver

SUM 関数が正しく加算されない

    あなたのデータ型についてはわかりません。ただし、次の戻り値の例を参照してください。 MSSQL 2012 では、状況はデータ型 REAL に対応しているようです。 MONEY、FLOAT、DECIMAL、DOUBLE PRECISION return 72200.00 REAL 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
      

    列のデータ型を変更することもできます (目的の型でない場合は、SQL Studio のドロップダウン メニューなどから誤って設定された可能性があります)。または、目的の 72200.00



    1. OracleデータベースをSQLAzureと同期する

    2. 深くネストされたサブクエリファクタリング(CTE)のパフォーマンスが遅い

    3. JSON値を持つAmazonAthenaでSQLをクエリ(検索)する方法は?

    4. プッシュボタンのラベルテキストを変更し、実行時に新しい機能を追加するにはどうすればよいですか? OracleForms