none
sql server metin alanını sayı alanına çevirme RRS feed

  • Genel Tartışma

  • Cümleten iyi akşamlar arkadaşlar. Bir sorum olacaktı.

    Mikro'daki bir veriyi (açıklama kısmına sayı girdiğimiz bir alanı) sql server ile excele atıyorum. Mikroda açıklama kısmına sayı giriyorum. Şimdi yapmak istediğim şu girdiğim o sayıyı herhangi bir alanla çarptırmak istiyorum veya bir rakamla olmuyor. Metin olan alanı nasıl sayı alanına dönüştürebilirm. Teşekkürler. saygılarımla,

    19 Mart 2013 Salı 19:28

Tüm Yanıtlar

  • merhabalar ,

    metin olarak girdiğin sayı çektiğinde işleme koymak için bir değişken tanımlaman gerekir ,

    declare @gelenDeger int

    daha sonra bu değişkene aşağıdaki sorgu ile değer atayabilirsin . Bu sorguda convert işlemi de söz konusudur.

    @gelenDeger = SELECT CONVERT(INT, MetinOlarakGirdiginKolonunAdi) FROM Tablon where <koşulun>

    şeklinde yazarsan eğer belli koşul ile filtreleyim gelen değeri int olarak convert edip , gelendeger değişkenine atayabilirsin.Böylelikle @gelenDeger değişkenini istediğin şekilde sorguda kullanabilir istediğin gibi işleme sokabilirsin.Umarım yardımcı olmuştur.

    19 Mart 2013 Salı 19:53
  • İlginize çok teşekkür ederim. Ancak anlamadım. Ben sql server 2005 kullanıyorum. İşlemlerimi view lerde yapıyorum. Daha açık anlatabilir misiniz?
    19 Mart 2013 Salı 20:06
  • sorgum şu şekilde koyu olan alan metin alanı en bu alana rakam giriyorum mikro'dan şimdi ise o alana girdiğim rakamı başkka bir rakam ile çarptıracam

    SELECT     TOP (100) PERCENT Tarih, [Belge Nr], CASE WHEN sth_normal_iade = 0 THEN ('Çıkış faturası') WHEN sth_normal_iade = 1 THEN ('Giriş faturası-İade')
                          END AS [Fatura Nev'i'], Ay, [Musteri Adı 1], [Adı 2], [Temscilci Adı], [Ürün Adı], Miktar, Birim, sth_aciklama AS [B.Alış EURO], [B.Alış Fiyatı], [B.Satış Fiyatı],
                          CASE WHEN sth_normal_iade = 0 THEN (Miktar * [B.Satış Fiyatı] - sth_iskonto1) WHEN sth_normal_iade = 1 THEN (- 1 * (Miktar * [B.Satış Fiyatı] - sth_iskonto1))
                          END AS Tutar, CASE WHEN sth_normal_iade = 0 THEN (Miktar * [B.Alış Fiyatı]) WHEN sth_normal_iade = 1 THEN (- 1 * (Miktar * [B.Alış Fiyatı])) END AS Maliyet,
                          CASE WHEN [B.Alış Fiyatı] > 0 THEN ((CASE WHEN sth_normal_iade = 0 THEN (Miktar * [B.Satış Fiyatı] - sth_iskonto1)
                          WHEN sth_normal_iade = 1 THEN (- 1 * (Miktar * [B.Satış Fiyatı] - sth_iskonto1)) END - CASE WHEN sth_normal_iade = 0 THEN (Miktar * [B.Alış Fiyatı])
                          WHEN sth_normal_iade = 1 THEN (- 1 * (Miktar * [B.Alış Fiyatı])) END)) END AS [Brüt Kar], sth_iskonto1, sth_normal_iade, Ay + + [Temscilci Adı] AS EXPR1,
                          sth_cari_kodu, Hafta
    FROM         dbo.[satıs detay1]
    WHERE     (sth_cari_kodu LIKE N'120%')
    ORDER BY Tarih


    • Düzenleyen odcy2000 19 Mart 2013 Salı 20:13
    19 Mart 2013 Salı 20:12
  • SELECT     TOP (100) PERCENT Tarih, [Belge Nr], CASE WHEN sth_normal_iade = 0 THEN ('Çıkış faturası') WHEN sth_normal_iade = 1 THEN ('Giriş faturası-İade')
                          END AS [Fatura Nev'i'], Ay, [Musteri Adı 1], [Adı 2], [Temscilci Adı], [Ürün Adı], Miktar, Birim, CONVERT(INT, sth_aciklama) AS [B.Alış EURO], [B.Alış Fiyatı], [B.Satış Fiyatı],
                          CASE WHEN sth_normal_iade = 0 THEN (Miktar * [B.Satış Fiyatı] - sth_iskonto1) WHEN sth_normal_iade = 1 THEN (- 1 * (Miktar * [B.Satış Fiyatı] - sth_iskonto1))
                          END AS Tutar, CASE WHEN sth_normal_iade = 0 THEN (Miktar * [B.Alış Fiyatı]) WHEN sth_normal_iade = 1 THEN (- 1 * (Miktar * [B.Alış Fiyatı])) END AS Maliyet,
                          CASE WHEN [B.Alış Fiyatı] > 0 THEN ((CASE WHEN sth_normal_iade = 0 THEN (Miktar * [B.Satış Fiyatı] - sth_iskonto1)
                          WHEN sth_normal_iade = 1 THEN (- 1 * (Miktar * [B.Satış Fiyatı] - sth_iskonto1)) END - CASE WHEN sth_normal_iade = 0 THEN (Miktar * [B.Alış Fiyatı])
                          WHEN sth_normal_iade = 1 THEN (- 1 * (Miktar * [B.Alış Fiyatı])) END)) END AS [Brüt Kar], sth_iskonto1, sth_normal_iade, Ay + + [Temscilci Adı] AS EXPR1,
                          sth_cari_kodu, Hafta
    FROM         dbo.[satıs detay1]
    WHERE     (sth_cari_kodu LIKE N'120%')
    ORDER BY Tarih

    Bu şekilde bir dener misin ? Sorguda bu şekilde düzenleme yaparsan , oraya gelen tüm veriler Rakam olarak değer kazanacaktır.Daha sonra burdaki değerleri kullanabilirsin istediğin gibi.

    19 Mart 2013 Salı 20:20
  • Teşekkürler. Sorguyu denedim ancak daha önce den girdiğim metinler vardı ondan mı acaba şöyle bir uyarı veriyor
    19 Mart 2013 Salı 20:33
  • kesinlikle evet. Daha önceden girilen kayıtların arasında BEDELSİZ VERİLDİ diye bir kayıt mevcut.Bu yüzden rakama dönüştürme işlemi başarısız oluyor.Eğer rakam dışında bir veri olursa o kolonda sorgu aynı hatayı verecektir.
    19 Mart 2013 Salı 20:35
  • Maalesef olmadı neyse senide yordum. Teşekkürler. Saygılarımla,
    19 Mart 2013 Salı 20:51
  • eğer bir kolonu sayıya çevirecekseniz o kolon içindeki bütün verilerin sayı olması gerekir aski taktirde hata alırsınız
    22 Nisan 2013 Pazartesi 13:16