Bir sorguda alt sorgu kullanarak bir hesaplama yaparak gösterdiğimiz alan değerini tekrar hesaplatmadan göstermenin bir yolu var mıdır? Soru açık değil en iyi örnekle anlatabilirim. Bir öğrenci tablosu ve devam tablosu olsun. Burada şöyle bir sorgu ile devamsızlık rapor edilebilir.
Kod: Tümünü seç
select ogr.No, ogr.Adi, ogr.Soyadi,
(select sum(dvm.Devam) from Devam as Dvm where Dvm.No=Ogr.No and dvm.Tur='D') as 'Devam Etmediği Gün',
(select sum(dvm.Devam) from Devam as Dvm where Dvm.No=Ogr.No and dvm.Tur='R') as 'Raporlu Olduğu Gün'
from Ogrenci as ogr
Kod: Tümünü seç
No | Adi |Soyadi |Devam Etmediği Gün |Raporlu Olduğu Gün
-----|-----------|-----------|--------------------|------------------------
1 | Murat | Gezer | 3 | 0
2 | Ali | Çolak | 2 | 2
Kod: Tümünü seç
select ogr.No, ogr.Adi, ogr.Soyadi,
(select sum(dvm.Devam) from Devam as Dvm where Dvm.No=Ogr.No and dvm.Tur='D') as 'Devam Etmediği Gün',
(select sum(dvm.Devam) from Devam as Dvm where Dvm.No=Ogr.No and dvm.Tur='R') as 'Raporlu Olduğu Gün',
----------------------------------------------------------------
(select sum(dvm.Devam) from Devam as Dvm where Dvm.No=Ogr.No and dvm.Tur='D')-(select sum(dvm.Devam) from Devam as Dvm where Dvm.No=Ogr.No and dvm.Tur='R') as 'Mazeretsiz Devamsızlık'
--------------------------------
from Ogrenci as ogr
