SQL AS – Tek Tabloda İç İçe Select Kullanımı , dersi ile sql eğitim setime devam ediyorum. Bu dersimde, çok fazla kullanacağımız bir şey olmasa da ara ara lazım olan bir işlemi göstermek istiyorum. Sorunun sebebini tam olarak bilemiyorum ama çözümünü bulmuştum zamanında… Gelin SQL AS – Tek Tabloda İç İçe Select Kullanımı işlemini görelim.
SQL AS – Tek Tabloda İç İçe Select Kullanımı
Bu dersimizde göreceğimiz işlemler,
1 – As kullanımı
2 – İç İçe Select kullanımı
Tek tablo üzerinden iç içe select sorgusu yazdığım da (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)-- Giriş 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 tablomuza da Alias verdik yani 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.
SQL AS – Tek Tabloda İç İçe Select Kullanımı , dersimizde bu kadardı dostlar. Diğer derslerimizde görüşmek üzere.
Microsoft SQL Server & T-SQL Eğitim Seti ders listesi için tıklayınız.
Sağlıcakla ve Takipte Kalın.