SQL AS – Tek Tabloda İç İçe Select Kullanımı

SQL AS – Tek Tabloda İç İçe Select Kullanımı

7 Eylül 2018 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 54
Yaklaşık okuma süresi : 2 DK
SQL Dil Sorunu (Ay Adı vs.) Çözümü
SQL Cast - Sanal Kolon Oluşturmak ve Kullanmak C#
SQL AS – Tek Tabloda İç İçe Select Kullanımı
5 (100%) 1 Oy

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. 😉

SQL Dil Sorunu (Ay Adı vs.) Çözümü
SQL Cast - Sanal Kolon Oluşturmak ve Kullanmak C#

Liseden, Ağ Sistemleri ve Yönetimi bölümünden mezun oldum. Üniversiteden (2 yıllık), Bilgisayar Programcılığı bölümünden mezun oldum. Şuanda da AÖF, Yönetim Bilişim Sistemleri bölümünde okumaktayım.

Uzmanlık alanlarım; Windows Sistemleri, HTML, CSS, C# ve SQL’dir.

Hobi olarak uğraştığım genel konular, Photoshop, After Affects, Corel Draw’dır.Film, YABANCI dizi, Anime izlemeyi ve Manga okumayı severim. Arkadaşlarımla yürüyüş yapmayı ve grup olarak aktivitelere gitmeyi severim. Geri kalan zamanlarımın tümü bilgisayar karşısında geçer.