string to float

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

string to float

Mesaj gönderen pro_imaj »

Merhaba;

Veri tabanında String olarak tanımlanan alanlarda matematiksel işlem yaptırmam gerekiyor herşeyi deneme rağmen Sonuç hep null dönüyor nerede hata yapıyorum acaba.

Bu şekilde Null Dönüyor

Kod: Tümünü seç

(convert(smallint,(FINSAT410.STI.Kod11)))*(convert(smallint,(FINSAT410.STI.Kod12))) AS TeslimEdilenMetre, 
Bu şekildede Null Dönüyor

Kod: Tümünü seç

(cast(FINSAT410.STI.Kod11 as float))*(cast(FINSAT410.STI.Kod12 as float)) AS TeslimEdilenMetre, 

Not: Kod11 ve Kod12 alanlarının boş olmadığını Görebiliyorum ama hep null veriyor Veri Tabanı MSSQL Server
Saygılarımla
Teşekkür ederim
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Her iki komut bende sorunsuz çalışıyor. Siz başka bir yerde yanlışlık yapmış olmalısınız.
Bir tablodaki varchar bir sütuna '12560.35' gibi bir değer girip yazdıklarınızı denedim. Normal çıkıyordu. O yüzden siz sorunu başka bir yerde arayın.
Kolay gelsin.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba @ofenX hocam. :oops:

Ya bu gün Foruma 2 tane soru sordum ikisine dikkatsizlikten dolayı yanlış yaptığımı anladım Bu sorun için 2 gündür uğraşıyorum acaba benmi yanlış yapıyorum diyorum ama nafileydi şimdi düzeldi.

Kod: Tümünü seç

(cast(FINSAT410.STI.Kod11 as float))*(cast(FINSAT410.STI.Kod12 as float)) AS TeslimEdilenMetre, 
Bu kod düzgün çalışıyor ama ben FINSAT410.STI.Kod11 yerine FINSAT410.SPI.Kod11 veriyi giriyormuşum.

FINSAT410.STI.Kod12 yerine FINSAT410.SPI.Kod12 veri giriyormuşum :roll:


ufak bir soru daha soracaktım. Null dönmemesini nasıl sağlarım acaba yani. alan boş ise 0 yazsın gibi

Saygılarımla
Teşekkür ederim
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
On beş satırlık bir verinin ondördünü null yapıp bir tanesini '12560,30' yaptım. Aşağıdaki komutu kullanınca null olanları 0 verdi.

Kod: Tümünü seç

SELECT
COALESCE(cast(STRVERI  as float),0 )*2 AS TeslimEdilenMetre
FROM PERSONEL

Kolay gelsin.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Mesaj gönderen pro_imaj »

Merhaba Hocam,

İlginiz için çok teşekkür ederim. Yardımınızla çözüme ulaştım artık null değer dönmüyor.

Kod: Tümünü seç


SELECT FINSAT410.SPI.SiparisDurumu, FINSAT410.CHK.Unvan1, FINSAT410.SPI.Tarih, FINSAT410.SPI.TahTeslimTarih, 
FINSAT410.SPI.Kod7, FINSAT410.SPI.Aciklama, FINSAT410.SPI.Kod14, FINSAT410.SPI.Kod13, FINSAT410.STK.TipKod, 
FINSAT410.SPI.Kod12 ,FINSAT410.SPI.Kod11, 
coalesce(cast(FINSAT410.SPI.Kod11 as float),0)*coalesce(cast(FINSAT410.SPI.Kod12 as float),0) AS SiparisEdilenMetre, 
coalesce(cast(FINSAT410.SPI.Kod11 as float),0)*coalesce(cast(FINSAT410.SPI.Kod12 as float),0)*coalesce(cast(FINSAT410.SPI.Kod14 as float),0)/100 AS SiparisEdilenM2, 
coalesce(cast(FINSAT410.SPI.Kod11 as float),0)*coalesce(cast(FINSAT410.SPI.Kod12 as float),0)*coalesce(cast(FINSAT410.SPI.Kod14 as float),0)*coalesce(cast(FINSAT410.SPI.Kod13 as float),0)/1000 AS SiparisEdilenKG, 
coalesce(cast(FINSAT410.STI.Kod11  as float),0)*coalesce(cast(FINSAT410.STI.Kod12 as float),0) AS TeslimEdilenMetre, 
coalesce(cast(FINSAT410.STI.Kod11 as float),0)*coalesce(cast(FINSAT410.STI.Kod12 as float),0)*coalesce(cast(FINSAT410.STI.Kod14 as float),0)/100 AS TeslimEdilenM2, 
coalesce(cast(FINSAT410.STI.Kod11 as float),0)*coalesce(cast(FINSAT410.STI.Kod12 as float),0)*coalesce(cast(FINSAT410.STI.Kod14 as float),0)*coalesce(cast(FINSAT410.STI.Kod13 as float),0)/1000 AS TeslimEdilenKG, 
(coalesce(cast(FINSAT410.SPI.Kod11 as float),0)*coalesce(cast(FINSAT410.SPI.Kod12 as float),0))-(coalesce(cast(FINSAT410.STI.Kod11 as float),0)*coalesce(cast(FINSAT410.STI.Kod12 as float),0)) AS KalanMetre, 
((coalesce(cast(FINSAT410.SPI.Kod11 as float),0)*coalesce(cast(FINSAT410.SPI.Kod12 as float),0)*coalesce(cast(FINSAT410.SPI.Kod14 as float),0))/100)-((coalesce(cast(FINSAT410.STI.Kod11 as float),0)*coalesce(cast(FINSAT410.STI.Kod12 as float),0)*coalesce(cast(FINSAT410.STI.Kod14 as float),0))/100) AS KalanM2, 
(coalesce(cast(FINSAT410.SPI.Kod11 as float),0)*coalesce(cast(FINSAT410.SPI.Kod12 as float),0)*coalesce(cast(FINSAT410.SPI.Kod14 as float),0)*coalesce(cast(FINSAT410.SPI.Kod13 as float),0)/1000)-(coalesce(cast(FINSAT410.STI.Kod11 as float),0)*coalesce(cast(FINSAT410.STI.Kod12 as float),0)*coalesce(cast(FINSAT410.STI.Kod14 as float),0)*coalesce(cast(FINSAT410.STI.Kod13 as float),0)/1000) AS KalanKG, 
FINSAT410.SPI.EvrakNo, FINSAT410.SPI.Kod1, FINSAT410.SPI.IslemTur
FROM ((FINSAT410.SPI LEFT JOIN FINSAT410.STK ON FINSAT410.SPI.MalKodu = FINSAT410.STK.MalKodu)
 LEFT JOIN FINSAT410.CHK ON FINSAT410.SPI.Chk = FINSAT410.CHK.HesapKodu) LEFT JOIN FINSAT410.STI ON 
(FINSAT410.SPI.Tarih = FINSAT410.STI.Tarih) AND (FINSAT410.SPI.SiraNo = FINSAT410.STI.SiraNo) AND 
(FINSAT410.SPI.IslemTur = FINSAT410.STI.IslemTur) AND (FINSAT410.SPI.EvrakNo = FINSAT410.STI.EvrakNo) AND 
(FINSAT410.SPI.Chk = FINSAT410.STI.Chk)
WHERE (((FINSAT410.SPI.IslemTur)=1));
Saygılarımla
Teşekkürler.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Cevapla