SQL-SORGU SONUCU ÇIKAN DEĞER İLE SÜTUN ARASI FARK

Konusu 'Programlama' forumundadır ve Ahmet Mücahit POLAT tarafından 20 Nisan 2017 12:34 başlatılmıştır.


  1. Ahmet Mücahit POLAT

    Ahmet Mücahit POLAT Üye

    Katılım:
    22 Mart 2017
    Mesajlar:
    11
    Beğenilen Mesajları:
    1
    Ödül Puanları:
    3
    Cinsiyet:
    Bay
    Merhabalar;

    Aşağıdaki gibi bir sql yapısı oluşturdum ve sorgu ile ortaya çıkan sonuç ise resimdeki gib i olmaktadır. Yapmak istediğim "uretim" diye adlandırdığım sorgu ifadesini "task_pres_piece" adlı sütündan çıkartmak ve en sona kolon olarak eklemektir. Ben birçok yol denedim fakat yapamadım. En sonda olacak olan sütun adının "FARK" olacağını varsayalım. (task_pres_piece - uretim) sorgusunun sonucu "FARK" kolonu olarak yanda gözükecektir.NULL yazan ifadelerinde sıfır değeri alması gerekiyor. Lütfen bu konuda yardımlarınız bekliyorum. Benim sorgu cümlem üzerinden devam edilmesi gerekiyor.Tam olarak aşağıdaki gibi sonuç almam lazım fakat dediğim gibi yanlızca en sağ tarafta istediğim işlemin sütununu getiremiyorum.


    Sql Sorgu Cümlem;


    SELECT tblTaskPres.task_pres_id,task_pres_order_detail,tblTaskPres.task_pres_yayin_tarihi,order_profil_no,tblOrder.order_customer_name ,tblOrder.order_surface_name,tblOrder.order_color_name,tblOrder.order_length,tblOrder.order_piece,tblOrder.order_kg,tblOrder.order_kg,tblTaskPres.task_pres_piece,(SELECT SUM(tblProductPres.product_piece) FROM tblProductPres WHERE tblTaskPres.task_pres_id= tblProductPres.product_planning_id ) as uretim
    FROM tblTaskPres,tblOrder where tblOrder.order_detail_no=tblTaskPres.task_pres_order_detail


    Sorgu Cümlemin Sonucu(Ek Resim Olarak);
    sqlsoru3.jpg
     
  2. ISMAILY

    ISMAILY Üye

    Katılım:
    9 Nisan 2010
    Mesajlar:
    380
    Beğenilen Mesajları:
    129
    Ödül Puanları:
    18
    (SELECT SUM(tblProductPres.product_piece) FROM tblProductPres WHERE tblTaskPres.task_pres_id= tblProductPres.product_planning_id ) as uretim

    kısmını

    CASE WHEN
    (SELECT SUM(tblProductPres.product_piece) FROM tblProductPres WHERE tblTaskPres.task_pres_id= tblProductPres.product_planning_id ) IS NULL THEN 0
    ELSE
    (SELECT SUM(tblProductPres.product_piece) FROM tblProductPres WHERE tblTaskPres.task_pres_id= tblProductPres.product_planning_id )
    END

    şeklinde yazabilirsin.

    Daha kısa, kolay, genel amaçlı kullanımı null dönen değeri sıfır döndürecek bir fonksiyon yazmak.


    MSSQL kullanıyorsan CONCAT_NULL_YIELDS_NULL parametresine de bakabilirsin.
     
    Ahmet Mücahit POLAT bunu beğendi.
  3. Ahmet Mücahit POLAT

    Ahmet Mücahit POLAT Üye

    Katılım:
    22 Mart 2017
    Mesajlar:
    11
    Beğenilen Mesajları:
    1
    Ödül Puanları:
    3
    Cinsiyet:
    Bay
    İsmail Bey cevabınız için teşekkür ederim. Yukarıda bahsettiğim iki kolon arasındaki farkı bu sorgu üzerinden nasıl yapabilirim. as uretim şeklinde adlandırdığım zaman o kolonu uretim adı altında kullanıp çıkarma işlemi yapmayı düşünüyordum. O konuda yardımcı olabilir misiniz. Yani yukarıda bahsettiğim problem ile alakalı. Şimdiden teşekkür ederim.
     
  4. ISMAILY

    ISMAILY Üye

    Katılım:
    9 Nisan 2010
    Mesajlar:
    380
    Beğenilen Mesajları:
    129
    Ödül Puanları:
    18
    Uretim kolonu yerine yukarıda yazdığım case -end li yazımı kullanabilirsin.
    Burası null döndürmeyeceğinden farkını da alabilirsin.

    Hangi SQL'i kullanıyorsun?
     
  5. Ahmet Mücahit POLAT

    Ahmet Mücahit POLAT Üye

    Katılım:
    22 Mart 2017
    Mesajlar:
    11
    Beğenilen Mesajları:
    1
    Ödül Puanları:
    3
    Cinsiyet:
    Bay
    SQL 2016 EXPRESS. Sizin söylediğiniz gibi yaptım fakat bahsettiğim iki kolon arasındaki kolonun farkını vermiyor. Konunun başında belirttiğim sql sorgusunda sizin verdiğiniz case-end yapısını koydum fakat yapamadım.:(
     
Yüklüyor...

Sayfayı Paylaş