SQL Group By Komutu – Verileri Gruplandırma , dersimiz ile sql eğitim setime devam ediyorum. Bu dersimde yine select sorgusu ile aldığımız verileri gruplamayı göreceğiz. Bu gruplama işlemi genelde verileri master detay şeklinde göstermek istediğimizde kullanırız. Diyelim ki elimizde bir Siparişler tablosu var. Tüm sipariş bilgileri de bu tabloda.. Yani siparişin üst bilgisi olan müşteri, sipariş tarihi, teslim adresi vs. bilgiler Master olur. Siparişi oluşturan kalemleri, stok , miktar, birim ücret, satır toplam vs bilgiler de Detay olur. Burada kayıt mantığımız şu şekilde olur. Master bilgisi olarak düşündüğümüz bilgiler her satırda yazıyor. Yani siparişin her kaleminde müşteri, sipariş tarihi, teslim adresi vs. bilgiler tekrar tekrar yazılıyor. (Tek tabloda tutmak istersek sonuç böyle olacaktır. ) Şimdi gelin böyle bir tabloda nasıl bir SQL Group By Komutu – Verileri Gruplandırma yapabileceğimizi görelim.
SQL Group By Komutu – Verileri Gruplandırma
Öncelikle bu ders için yeni bir tablo açıyorum. Siparişler tablosu… Bu tabloya kayıt mantığını da yukarıda bahsettiğim şekilde yapacağım. 8 kalemlik bir sipariş örneği verisi girdim. Şimdi bu siparişimizin master olacak sorgusunu yazalım.
Group By ile Master Detail Mantığı
Master
Görselde gördüğünüz gibi sorgumuz yazdık ve 8 kalem kayıttan tek bir master aldık. Burada birbirine uyan tüm kayıtlar gruplanarak tek bir kayıt olarak gösterilir. Burada örn sip_Tarihi kolonu bir satırda farklı olsaydı burada elimizde 2 kayıt olurdu. Çünkü tarih kolonundaki veriler farklıdır ve tek bir yerde gruplanamazlar.
İPUCU : Böyle bir durumda yazdığınız sorgu da ne yaparsanız yapın birden fazla satır geliyor ama siz tek bir satır istiyorsanız Select komutundan sonra TOP 1 yazarak bir kaydın alınmasını sağlayabilirsiniz. (Select TOP 1)
Evet elimizde master kaydımız var. Şimdi sıra bu master olarak aldığımız satırın detaylarını göreceğimiz bir Detay sorgumuzu yazalım.
NOT: Bu mantık C# programlama da master sorgu sonucunu bir gridview’e, detay sorgusu sonucunu da başka bir gridview’e doldurarak kullanırız. Master gridview’de bir kayda tıklandığında o master kaydına ait detaylar Detay’ları göstereceğimiz gridview’e doldurak kullanılır. Burada verdiğim mantık ve örnek bu işleme ithafen verilmektedir.
Detay
Şimdi detay kısmını veren sorgumuzu ve sonuçlarını görelim.
Master kısmından aldığımız verileri detay sorgusunda where şartı olarak verdiğimizde master kayda bağlı olan detayları elde etmiş oluyoruz.
SQL Group By komutunun en sık kullanım şekli budur. Yani en azından ben en çok bu iş için kullanıyorum. Bir kullanım şekli daha var ancak onu anlatabilmek için System Functions kısmını anlatmış olmam lazım. O konuyu da o dersleri anlatırken vereceğim.
*** SQL Group By komutu Where komutundan sonra kullanılır. Önce Where komutu yazılır sonrasında Group By komutu ve sonrasında Order By komutu yazılır. Bu sıralamada olmazsa hata verecektir.
SQL Group By Komutu – Verileri Gruplandırma , dersimizde bu kadar 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.