I am using SQL Server 2008 R2 and I have an INT column where the data inserted never surpasses the max INT, but I have a query which uses the SUM function which when executed surpasses the max INT limit and throws the error mentioned in the title.
I want to be able to execute this query without changing the column type from INT to BIGINT.
Here is my query:
SELECT UserId, SUM( PokemonExp ) AS TotalExp, MAX( PokemonLevel ) AS MaxPokeLevel FROM mytable GROUP BY UserId ORDER BY TotalExp DESC Note: The PokemonExp column is of type INT.
1. "Arithmetic overflow error converting IDENTITY to data type int" error means the value of IDENTITY is overflowing range of data type of that particular column.
Type of expression in SUM determines return type.
Try the following:
SELECT UserId, SUM( CAST( PokemonExp AS BIGINT )) AS TotalExp, MAX( PokemonLevel ) AS MaxPokeLevel FROM mytable GROUP BY UserId ORDER BY TotalExp DESC
You don't have to change the column type to BIGINT to get a proper sum.
Just CAST or CONVERT PokemonExp to BIGINT before you perform the SUM like follows:
SUM( CAST( PokemonExp AS BIGINT ))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With