SUM Fonksiyonunu Kullanırken Alınan “Arithmetic overflow error converting expression to data type int.” Hatasının Çözümü

12 May by NURULLAH ÇAKIR

SUM Fonksiyonunu Kullanırken Alınan “Arithmetic overflow error converting expression to data type int.” Hatasının Çözümü

SUM fonksiyonu kullanarak bir kayıt kümesini toplayarak toplam sonucu elde etmek istediğinizde bu hatayı alabilirsiniz. Bu hatayı almamak için SUM fonksiyonunun içinde topladığınız kolonu CAST ile bigint tipini dönüştürmeniz gerekir. Bir örnekle daha net açıklayalım.

 

Aşağıdaki gibi AdSoyad ve KayitSayisi kolonundan oluşan bir tablo oluşturup içine birkaç tane insert işlemi gerçekleştirelim. Script’te gördüğünüz gibi int tipinde tanımladığımız KayitSayisi kolonuna insert ettiğimiz değerler neredeyse int değerinin limitlerini zorluyor.

CREATE TABLE [dbo].[ConvertProblemOrnek](
[AdSoyad] [varchar](250) NULL,
[KayitSayisi] [int] NULL
) ON [PRIMARY]
INSERT INTO [dbo].[ConvertProblemOrnek]  ([AdSoyad] ,[KayitSayisi])   VALUES ('Nurullah ÇAKIR',2050512989)
INSERT INTO [dbo].[ConvertProblemOrnek]  ([AdSoyad] ,[KayitSayisi])   VALUES ('Hakan GÜRBAŞLAR',2050512988)
INSERT INTO [dbo].[ConvertProblemOrnek]  ([AdSoyad] ,[KayitSayisi])   VALUES ('Faruk ERDEM',2050512987)
INSERT INTO [dbo].[ConvertProblemOrnek]  ([AdSoyad] ,[KayitSayisi])   VALUES ('Dilara AYDIN',2050512987)

 

SUM fonksiyonunu kullanarak aşağıdaki gibi bir sorgu ile kişilerin kayıt sayılarını topladığımızda toplam değer int tipinin limitini aşacağı için makalemize konu olan hatayı alacağız.

SELECT SUM(KayitSayisi) FROM [dbo].[ConvertProblemOrnek]

Sorguyu aşağıdaki şekilde değiştirdiğimizde hata almadan istediğimiz toplamı elde edebileceğimizi görmüş olacaksınız.

SELECT SUM(CAST(KayitSayisi AS BIGINT)) FROM [dbo].[ConvertProblemOrnek]

 

Loading

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir