Sql-sorgu sonucu çıkan değer ile sütun arası fark

Katılım
22 Mar 2017
Mesajlar
11
Puanları
1
Yaş
31
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
 

ISMAILY

Üye
Katılım
9 Nis 2010
Mesajlar
464
Puanları
31
Konum
Çanakkale
(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.
 
Konu Sah
Katılım
22 Mar 2017
Mesajlar
11
Puanları
1
Yaş
31
İ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.
 

ISMAILY

Üye
Katılım
9 Nis 2010
Mesajlar
464
Puanları
31
Konum
Çanakkale
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?
 
Konu Sah
Katılım
22 Mar 2017
Mesajlar
11
Puanları
1
Yaş
31
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.:(
 

Yeni mesajlar

Forum istatistikleri

Konular
121,741
Mesajlar
858,283
Kullanıcılar
437,717
Son üye
Semaozturk

Yeni konular

Çevrimiçi üyeler

Üst