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ı.
SQL view üzerinde calculated field sorunum
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 86
- Kayıt: 27 May 2014 04:27
-
- Üye
- Mesajlar: 216
- Kayıt: 10 Ara 2013 03:50
Re: SQL view üzerinde calculated field sorunum
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))
İ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))
-
- Üye
- Mesajlar: 86
- Kayıt: 27 May 2014 04:27
Re: SQL view üzerinde calculated field sorunum
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.
"invalid or missing expression" hatası alıyorum.
Cast((AlanA*AlanB)/AlanC) as decimal) şeklinde denediğimde ise tamsayı olarak geliyor değerler.
Re: SQL view üzerinde calculated field sorunum
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;
gibi.
Kod: Tümünü seç
(AlanA * 1.0) * (AlanB * 1.0) / (AlanC * 1.0)
-
- Üye
- Mesajlar: 86
- Kayıt: 27 May 2014 04:27
Re: SQL view üzerinde calculated field sorunum
çok teşekkür ederim.
cast ile olmadı.
1.0 değil ama 1,0 işe yaradı.
cast ile olmadı.
1.0 değil ama 1,0 işe yaradı.
Re: SQL view üzerinde calculated field sorunum
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.
- 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
Sanırım sql server işlemi yaparken gördüğü ilk tipi baz alarak işlem yapıyor ve
önerisini de dikkate alırsak aşağıdaki şekilde de istenilen sonuç alınabilir.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.
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. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .