SQL - AS komutu ile Tek Tablolda İç İçe Select Kullanımı

SQL -  AS komutu ile Tek Tablolda İç İçe Select Kullanımı

Tek tablo üzerinde iç içe select kullanımında tabloyu as ile isimlendirme

Selamlar arkadaşlar,

Bu dersimizde tek tablo üzerinden iç içe select sorgusu yazdığımızda  (yani ana sorgu da Tablo1 üzerinde alt sorgularda Tablo1 üzerinde) şart olarak ID verdiğimizde alt sorguların sonuçlarının null gelmesi sorunun çözümünü anlatmaya çalışacağım. 

Birbirine bağlı kayıtlar arasında bir analiz yapmamız gerektiğinde bu sorunla karşılaşıyoruz.

Örn. URETIM_KAYITLARI tablomuzda 5 kaydımız var. 1. kayıt Giriş bilgisi kaydı diğer 4 kayıtta çıkış bilgi kaydı. Çıkış bilgisi kayıtlarının bir stununda da (örn SpecID) giriş kaydının ID bilgisini tutuyoruz diyelim.

Sorgu şu şekilde;

select 

 (select sum(GirisKG)  as  KG  from URETIMKAYITLARI  WHERE SpecID = ID)-- Çıkış bilgisi Kaydı
,(select sum(GirisGen) as  GEN from URETIMKAYITLARI  WHERE SpecID = ID)-- Çıkış bilgisi Kaydı
,*

 from URETIMKAYITLARI 

Sorgumuzu bu şekilde hazırladığımızda alt sorgulardan gelen sonuç her zaman NULL oluyor. Sebebini tam olarak bende bilmiyorum ama tablo ve stun adları aynı olduğundan karıştırıyor olabilir diye düşünüyorum. Ancak çözümü var. O çözümde stunları isimlendirmemize yarayan " AS " ' da. Daha fazla uzatmadan yukarıdaki sorgunun çalışan halini yazayım. 

select 

 (select sum(GirisKG) as  KG  from URETIMKAYITLARI as CikisUretimKaydi  WHERE CikisUretimKaydi.SpecID = GirisUretimKaydi.ID)
,(select sum(GirisGen) as GEN from URETIMKAYITLARI as CikisUretimKaydi  WHERE CikisUretimKaydi.SpecID = GirisUretimKaydi.ID)
,*

 from URETIMKAYITLARI as GirisUretimKaydi

Örnek kodda gördüğünüz gibi AS kullanarak tablomuzuda isimlendirdik. Bu şekilde alt sorgulardaki tablonun farklı bir tablo gibi görünmesine ve bu şekilde sorgunun sorunsuz bir şekilde çalışmasını sağladık.

 

Bu dersimizde bu kadar arkadaşlar.

Diğer derslerimizde görüşmek üzere.

 

 

Mustafa BÜKÜLMEZ
Hazırladığım ve yüklediğim tüm dersleri deneyip çalıştığını onayladıktan sonra ekliyorum. Çalışmayan kodlar deneyimli kişiler için sorun olmayabilir ama yeni başlayanlar için problemdir. Hem yazılıma gönül vermiş sevgili arkadaşlarıma yardımcı olmak hem daha sonra lazım olduğunda arama süremi kısaltmak için paylaşıyorum.. -- *Bilgi paylaştıkça çoğalır. *Bir mum diğer mumu yakmakla ışığından bir şey kaybetmez. Aksine birlikte etrafı daha çok aydınlatırız. -- Lisede Ağ sistemleri ve Yönetimi bölümü Üniversitede de Bilgisayar Programcılığı okudum. Şuanda da Kahramanmaraş'ta olan Gemciler Güven Metal Sanayi ve Ticaret A.Ş firmasında Bilgi İşlem Müdürü olarak çalışmaktayım. Yaptığım işe ek olarak yine Kahramanmaraş'ta olan 1453 Yazılım firmasının kurucu ortaklarından biriyim. ----- Kişisel Bloğum : https://csharpiledundenbugune.blogspot.com.tr/
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git