Forum

SQL Sorgusu
 
Bildirimler
Hepsini Temizle

SQL Sorgusu

5 Yazılar
3 Üyeler
0 Reactions
618 Görüntüleme
(@BirkanAYDIN)
Gönderiler: 7
Active Member
Konu başlatıcı
 

Merhabalar, oluşturmakta zorluk çektiğim bir sql sorgum bulunmakta, 

+----+-------+-----+
| id | HesapTipi| yas |
+----+-------+-----+
| 1  | 1        | 39  |
| 2  | 1        | 28  |
| 3  | 1        | 24  |
| 4  | 2        | 32  |
| 5  | 2        | 48  |
| 6  | 2        | 24  | 
+----+-------+-----+ 
 Bu şekilde bir tablomuz olduğunu düşünelim, benim sql sorguda gerçekleştirmek istediğim hesap tipi 1 olanların toplamını, 2 olanlarında ortalamasını alarak
tek bir tablo içerisinde bana göstersin. Yani oluşturduğum sorgudan sonra bana geri döndüreceği tablo aşağıdaki gibi olsun.
 
+---------------+---------+
HesapTipi    Sonuc
      1          91
      2          34,66666
 
Tek bir sql sorgusunda bu olayı gerçekleştirebilmek mümkün müdür ? Mümkün ise nasıl bir yol izlemem gerekecektir. Yardımlarınız için şimdiden teşekkürler.... 
 
Gönderildi : 10/03/2014 21:06

(@orhanakdogan)
Gönderiler: 311
Reputable Member
 

Merhaba,

Select HesapTipi, Sum(yas) as Sonuc

From table

Where HesapTipi=1

Group By HesapTipi

Union All

Select HesapTipi, Avg(yas) as Sonuc

From table

Where HesapTipi=2

Group By HesapTipi 

 
Gönderildi : 11/03/2014 00:11

(@BirkanAYDIN)
Gönderiler: 7
Active Member
Konu başlatıcı
 

Yardımınızdan dolayı çok teşekkürler Orhan Bey, bu yapmış olduğunuz işlemi performans açısından tavsiye eder misiniz? Yoksa tablolama yapımda değişiklik yapmalımıyım ? 

 

 
Gönderildi : 11/03/2014 01:14

(@mesutgunes)
Gönderiler: 14
Active Member
 

Merhaba,

Orhan bey'in dediği gibi yapabilirsiniz yada aşağıdaki sorgu ile daha kısa kodlar ile yapabilirsiniz.

select 

HesapTipi,

CASE HesapTipi WHEN 1 THEN SUM(Yas) WHEN 2 THEN AVG(Yas) END AS Yas

from tblTest GROUP BY HesapTipi 

Tablonuzda kayıt sayınız çok ise Orhan bey'in gösterdiği örnek daha performanslı çalışacaktır. 

 
Gönderildi : 11/03/2014 14:30

(@BirkanAYDIN)
Gönderiler: 7
Active Member
Konu başlatıcı
 

İlgi ve alakanızdan dolayı teşekkürler, Orhan Bey 'in yöntemi ile sorunumu çözdüm fakat sizin yönteminizi de notlarım arasına aldım. Vermiş olduğunuz bilgilerden dolayı tekrardan teşekkürler.

 
Gönderildi : 11/03/2014 20:10

Paylaş: