SORU 25: Bazı yaş gruplarının sayısı
#1
Patron ilginç bir şekilde, 1980, 1981, 1982 ve 1983 doğum tarihli personelin sayısını istiyor. Bu soru, muhasebeye de ilginç geliyor ama patron bu işte. Ne zaman ne isteyeceği belli olmaz.
Format olarak da,
Kod:
1980 Doğumluları sayısı   1981 Doğumluları sayısı ....
----------------------    ----------------------- ....
şeklinde istiyor.



  Alıntı
Bu mesajı beğenenler:
#2
Merhaba...

Bu soruyu çözmek için DCount işleçinden yararlandım.. Bu işleç bir alandaki verileri saymamıza yarıyor..

Sorgumu

DCount("[Saydırmak İstediğim Alan]","[Saydırmak İstediğim Alanın Olduğu Tablo]","[Saydırmak İstediğim Alanı Süzmek İçin Yazacağım Kriter]")

biçiminde kurguladım..

Personelin, alan içerisinde Gün Ay Yıl olarak yazılmış olan doğum tarihlerini yukarıdaki düzenek içerisindeki kriter bölümüne sadece yıl kısmını sokmak için Year fonksiyonunu kullanmam gerekti..

1980 doğumlu olanlar için yazdığım deyimde daha iyi anlaşılacaktır:

DCount("[DogumTarihi]","[Personel]","Year([DogumTarihi])=1980") AS 1980 Doğumluların Sayısı,


Deyimin tamamı da budur:

Kod:
SELECT
      DCount("[DogumTarihi]","[Personel]","Year([DogumTarihi])=1980") AS [1980 Doğumluların Sayısı],
      DCount("[DogumTarihi]","[Personel]","Year([DogumTarihi])=1981") AS [1981 Doğumluların Sayısı],
      DCount("[DogumTarihi]","[Personel]","Year([DogumTarihi])=1982") AS [1982 Doğumluların Sayısı],
      DCount("[DogumTarihi]","[Personel]","Year([DogumTarihi])=1983") AS [1983 Doğumluların Sayısı];



  Alıntı
Bu mesajı beğenenler:
#3
Sayın Taruz, çözüm doğru, ancak efektif değil.
Yeni çözümler bekliyoruz.



  Alıntı
Bu mesajı beğenenler:
#4
Sorguyu Ms Sql Server da oluşturdum, tabii ufak değişiklikler yaptım, iyi bir tecrübe oldu Wink

Kod:
SELECT     TOP 1
                          (SELECT     COUNT(YEAR(DogumTarihi)) AS Expr1
                            FROM          personel
                            WHERE      (YEAR(DogumTarihi) = 1980)) AS [1980 liler],
                          (SELECT     COUNT(YEAR(DogumTarihi)) AS Expr2
                            FROM          personel AS personel_1
                            WHERE      (YEAR(DogumTarihi) = 1981)) AS [1981 liler],
                          (SELECT     COUNT(YEAR(DogumTarihi)) AS Expr3
                            FROM         personel AS personel_1
                            WHERE      (YEAR(DogumTarihi) = 1982)) AS [1982 liler],
                          (SELECT     COUNT(YEAR(DogumTarihi)) AS Expr4
                            FROM         personel AS personel_1
                            WHERE      (YEAR(DogumTarihi) = 1983)) AS [1983 lüler]
FROM         personel
Javascript
  1. this.setState({sign:"Here comes the sun...."})







  Alıntı
Bu mesajı beğenenler:
#5
Bu çözüm de doğru, ancak yine efektif değil. Wink
Şunun için efektif değil diyorum. Tek sorguda halledilebilecekken, dışteki select ile birlikte 5 adet select cümlesi kullanılıyor.
Yani 4 kere daha fazla iş.



  Alıntı
Bu mesajı beğenenler:
#6
Bu başlık sanırım en çok bana yaradı..

Özellikle de sn. yeni54'ün ilginç sorularının yanında, kışkırtıcı Wink tarzı bizi yeni çözümlere zorlarken, sn. beab2005'in dediği gibi bende müthiş tecrübeler ediniyorum..

Bu konu hakkındaki yeni çözümüm:

Kod:
SELECT

       Count(IIf((Year([DogumTarihi])=1980)<0,Year([DogumTarihi])=1980)) AS 1980,
       Count(IIf((Year([DogumTarihi])=1981)<0,Year([DogumTarihi])=1981)) AS 1981,
       Count(IIf((Year([DogumTarihi])=1982)<0,Year([DogumTarihi])=1982)) AS 1982,
       Count(IIf((Year([DogumTarihi])=1983)<0,Year([DogumTarihi])=1983)) AS 1983

FROM personel;



  Alıntı
Bu mesajı beğenenler:


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

Foruma Git:


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