18 Ekim 2011 Salı

SQL COUNT() fonksiyonu ile raporlama yapmak

Bir veritabanında kayıtlarımız olsun ve bu kayıtlardan bizim istediğimiz şekilde raporlama yapmasını isteyelim.
Örnek tablo aşağıdaki gibi olsun Tabloda bilmek istediğimiz illerden kaç tane üyemiz var onu göreceğiz.

Tablomuzun adı: uyeler

id isim sehir
1 ismail Öztürk istanbul
2 Ali Ankara
3 Mehmet istanbul
4 Selim Trabzon
5 Mustafa Ankara
6 Ayşe Ankara
7 Fikret Trabzon
8 Gökhan istanbul

Şimdi bu tablodan hangi ilde kaç üyemiz var diye bir sorgu yapalım ve bu sorguyu da bir seferde çalıştıralım.
Bunun için COUNT() kullanacağız.

sql = "Select (Select COUNT(*) from uyeler WHERE sehir='istanbul') as toplamistanbullu,"
sql = sql & " (Select COUNT(*) from uyeler WHERE sehir='Ankara') as toplamAnkarali,"
sql = sql & " (Select COUNT(*) from uyeler WHERE sehir='Trabzon') as toplamTrabzonlu "
sql = sql & " from uyeler "

Set rs = conn.execute(sql)

Sonuçta çıktı alırken mavi ile işaretlediğimiz alanları kullanacağız. 
<%
Response.write("<br>İstanbullu: " & rs("toplamistanbullu"))
Response.write("<br>Ankaralı: " & rs("toplamAnkarali"))
Response.write("<br>Trabzonlu: " & rs("toplamTrabzonlu "))
%>

Şu şekilde de tam çıktımız olacakÇ
İstanbullu: 3
Ankaralı: 3
Trabzonlu: 2 

Burada Select içinde select kullandık buna dikkat etmek gerekiyor. dikkat ederseniz içteki select lerden önce ve sorgudan sonra parantez var parantezden sonra da o select'e bir isim veriyoruz. yani onu bir field gibi işliyoruz. 

Hiç yorum yok:

Yorum Gönder