SQL view üzerinde calculated field sorunum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
underwater
Üye
Mesajlar: 86
Kayıt: 27 May 2014 04:27

SQL view üzerinde calculated field sorunum

Mesaj gönderen underwater »

Arkadaşlar merhaba;

SQL 2008 kullanıyorum.

Oluşturduğum view üzerindeki alanları kullanarak yeni bir alan oluşturdum.Şöyleki ;

(AlanA*AlanB)/AlanC

formul bu şekilde.

bu formülün sonucu tamsayı olarak geliyor.Oysa gerçek sonuç küsüratlı.(ben elle hesaplarsam küsüratlı geliyor)

sonuç tamsayı değilde gerçek değerinde gelmesi için ne yapmam lazım?

Not:formülde kullanılan alanların tamamı tamsayı.
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: SQL view üzerinde calculated field sorunum

Mesaj gönderen xxxjedixxx »

Merhaba,

İstediğini SQL Serverda Cast fonksiyonu ile yapabilirsin.

Cast(A * B as decimal) / C
veya virgülden sonrasını ayarlamak istiyorsan
Cast(Cast(A * B as decimal) / C as decimal(10,2))
underwater
Üye
Mesajlar: 86
Kayıt: 27 May 2014 04:27

Re: SQL view üzerinde calculated field sorunum

Mesaj gönderen underwater »

Cast((AlanA*AlanB)/AlanC) as decimal (10,2)) şeklinde denediğimde

"invalid or missing expression" hatası alıyorum.

Cast((AlanA*AlanB)/AlanC) as decimal) şeklinde denediğimde ise tamsayı olarak geliyor değerler.
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: SQL view üzerinde calculated field sorunum

Mesaj gönderen thelvaci »

Alanlardan bir yada bir kaçı tamsayıdır muhtemelen. Bu durumda arkadaşımızın bahsettiği gibi CAST yada CONVERT uygulayabilirsiniz yada daha basit bir şekilde 1.0 ile çarpabilirsiniz alanlarınızı. Örneğin;

Kod: Tümünü seç

  (AlanA * 1.0) * (AlanB * 1.0) / (AlanC * 1.0)
gibi.
underwater
Üye
Mesajlar: 86
Kayıt: 27 May 2014 04:27

Re: SQL view üzerinde calculated field sorunum

Mesaj gönderen underwater »

çok teşekkür ederim.

cast ile olmadı.

1.0 değil ama 1,0 işe yaradı.
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: SQL view üzerinde calculated field sorunum

Mesaj gönderen thelvaci »

Ayrıca bu tarz işlemlerde AlanC'nin değerinin 0 (Sıfır) olma durumunu da kontrol etmelisiniz. Division by zero hatasını görmek istemiyorsanız eğer.
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: SQL view üzerinde calculated field sorunum

Mesaj gönderen sabanakman »

Sanırım sql server işlemi yaparken gördüğü ilk tipi baz alarak işlem yapıyor ve
thelvaci yazdı:Ayrıca bu tarz işlemlerde AlanC'nin değerinin 0 (Sıfır) olma durumunu da kontrol etmelisiniz. Division by zero hatasını görmek istemiyorsanız eğer.
önerisini de dikkate alırsak aşağıdaki şekilde de istenilen sonuç alınabilir.

Kod: Tümünü seç

case when AlanC<>0 then (cast(AlanA as float)*AlanB)/AlanC end
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla