SORU 31: İsme göre sıralı her 3 maaşın ortalaması
#1
SORU 31:

Alfabetik olarak isme göre sıralanmış her 3 maaşın ortalamasını istiyoruz. Bu soruyu 2 farklı şekilde soralım.

A) Her üç maaş ortalaması ardışık olarak yapılacak yani;

isim----maaş---Ortalama
Ahmet---1000 ----Null
Ali-------2000 -----Null
Ayten----3000-----2000
Azra------3000----- 2666,66
Hasan----1000-----2333,33
Veli-------800 ----- 1600
.......................................


B) Her üç maaş ortalamasını sadece 3 kayıtta bir yapalım..

isim----maaş---Ortalama
Ahmet---1000 ----Null
Ali-------2000 -----Null
Ayten----3000----- 2000
Azra-----3000----- Null
Hasan----1000-----Null
Veli-------800 ----- 1600
.......................................
Javascript
  1. this.setState({sign:"Here comes the sun...."})







  Alıntı
Bu mesajı beğenenler:
#2
İyi akşamlar.

Bunlar usta işi, ben yokum...



  Alıntı
Bu mesajı beğenenler:
#3
Merhabalar;
A) cevabı;
Öncelikle alfabetik isme göre istenildiği için personelno alanını kullanamadık. Bu sebeple yeni bir alan açalım tabloya ve bu alanın içindeki sıralamayı isimleri alfabetik yaptıktan sonra sıralı bir şekilde dolduralım. ismini "sirano" verelim. copy paste olarak yapabilirsiniz ya da daha birçok varyasyonla o siranoları yazdırabilirsiniz. Ben o kısım hakkında fazla detaya girmiyorum.. Ve alttaki sorguyla da A) sorusunun cevabını elde edebilirsiniz.. Ekteki sorguyu inceleyiniz..

SQL
  1. SELECT a.Ad, a.Maas, (SELECT avg(maas) FROM
  2. (SELECT personel.Ad, personel.Maas, personel.sirano AS i, sirano+2 AS no3 FROM personel ORDER BY personel.Ad)
  3. WHERE no3 BETWEEN a.i AND a.no3 AND a.i>1) AS 3lü_toplam
  4. FROM
  5. (SELECT personel.Ad, personel.Maas, personel.[sirano] AS i, [sirano]+2 AS no3 FROM personel ORDER BY personel.Ad)
  6. AS a;


Javascript
  1. this.setState({sign:"Here comes the sun...."})







  Alıntı
Bu mesajı beğenenler:
#4
Aslında efektif olan çözüm tabii ki beab05 in çözümü. Ama, vt de alan açma, tablo yaratma gibi yetkilerin olmadığı durumlarda aşağıdaki gibi bir çözüm uygulanabilir.

2 adet sql cümlesi var. Tek sql cümlesine indirilebilir, ancak anlaşılır olması açısında 2 cümle olarak yazıcam.

1. sql cümlesi: (Bu cümle sorgular bölümünde s31_aa adıyla saklanacak)
SQL
  1. SELECT (SELECT (COUNT(b.personelno)) FROM personel b WHERE b.ad & b.soyad & b.personelno <= a.ad & a.soyad & a.personelno) AS sira, a.Ad, a.Soyad, a.Maas
  2. FROM personel AS a
  3. ORDER BY a.ad & a.soyad & a.personelno;



2. ve sonuç sql cümlesi: (Bunu da s31_ab olarak kaydedebilirsiniz)
SQL
  1. SELECT x.sira, x.ad, x.soyad, x.maas,
  2. (SELECT avg(b.maas) FROM s31_aa AS b WHERE b.sira BETWEEN x.sira-2 AND x.sira AND x.sira > 2) AS uclu_ortalama
  3. FROM s31_aa AS x;



yukarıda da dediğim gibi, sadece örnek olması amacıyla yazıldı. Performans olarak çok düşük bir sonuç.



  Alıntı
Bu mesajı beğenenler:
#5
Her iki cevapta müthiş..

Özellikle yeni54, sizin alfabetik sıralama için, sanal sıra numarası oluşturma yönteminiz tek kelime ile mükemmel.. Hayran olmamak elde değil..

Her ikinizede teşekkürler..



  Alıntı
Bu mesajı beğenenler:
#6
Sayın yeni54 ve beab2005;

Bu çözümler ancak büyük usta ve uzman kişiler olan sizlerden çıkabilir. Bilgilerinizi bizlerle paylaştığınız için teşekkürler. İyiki varsınız...

İyi hafta sonları.

En içten sevgi ve saygılar.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  SORU 26: Rastgele isim (Çekiliş) beab05 29 15.302 05-08-2019, 21:43
Son Mesaj: halily
  SORU 11: 2. Harfe Göre Personel Bulmak beab05 13 14.661 11-02-2019, 13:18
Son Mesaj: dsezgin
  SORU 27: İLLERE GÖRE PERSONEL VE MAAŞ TOPLAMI gitarisyen 8 7.057 25-02-2014, 10:17
Son Mesaj: mesut58580
  SORU 37: Adı H ile başlayan Soyadı K ile bitenler onur_can 0 3.026 18-02-2014, 01:03
Son Mesaj: onur_can
  SORU 36: Maaşı Belli aralıkta olanları Listeleme onur_can 0 1.656 18-02-2014, 01:00
Son Mesaj: onur_can
  SORU 30: En yüksek N'inci maaş beab05 11 7.040 19-11-2013, 16:15
Son Mesaj: armane
  SORU 22:Kendi çalıştığı departmanın ortalamasının üzerinde maaşı olanlar yeni54 11 6.934 08-06-2013, 17:59
Son Mesaj: irfn
  SORU 17: PARAMETREYLE MAAŞLARI SORGULAMAK gitarisyen 4 4.269 14-04-2013, 15:03
Son Mesaj: hturkavci03

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi