[SORGU] Tek sorguda Çoklu Veri Sayma
#7
Sn @MSC;
brans ve unvanlari bos olanlanlara isaretleme ile personel saydirilmistir.

SELECT personel.personel_kadro_kurum, personel.personel_sinif, IIf(IsNull([personel_akademik_unvan]),"____BOS____",[2_unvan]![unvan_adi]) AS Unvan, IIf(IsNull([personel_brans]),"____BOS____",[3_brans]![brans_adi]) AS Brans, Count(personel.personel_id) AS PersonelSayisi, Sum(IIf([izin_baslayis]>[SysTarih] And [izin_bitis]<[SysTarih] Or IsNull([izin]![personel_id]),1,0)) AS Aktif, Sum(IIf([izin_baslayis]<=[SysTarih] And [izin_bitis]>=[SysTarih],1,0)) AS Izinde
FROM (3_brans RIGHT JOIN (2_unvan RIGHT JOIN personel ON [2_unvan].unvan_id = personel.personel_unvan) ON [3_brans].brans_id = personel.personel_brans) LEFT JOIN izin ON personel.personel_id = izin.personel_id
GROUP BY personel.personel_kadro_kurum, personel.personel_sinif, IIf(IsNull([personel_akademik_unvan]),"____BOS____",[2_unvan]![unvan_adi]), IIf(IsNull([personel_brans]),"____BOS____",[3_brans]![brans_adi]);



  Alıntı
Bu mesajı beğenenler:
#8
İlginiz alakanız ve yardımlarınız için teşekkürlerimi sunuyorum.



  Alıntı
Bu mesajı beğenenler:
#9
Merhaba,
Konu yine aynı sorgu ile alakalı olduğu için bu başlıktan devam ediyorum.
Yukarda vermiş olduğunuz sorgu için tekrardan teşekkürler. Başka bir yöntem ile de aynı sorguyu elde ettim yine bir yardım ile.
Yalnız sorguda yapmak istediğim bir durum var bunu nasıl gerçekleştirebilirim kısmında takıldım.
Sorgum;
SQL
  1. SELECT kurum_adi, sinif_adi, unvanadi, bransadi, SUM(kadrolu) AS kadrolus,
  2. SUM(kadrolu_aktif) AS kadrolu_aktifs, SUM(gecici_gorevli) AS gecici_gorevlis,
  3. [kadrolu_aktifs]+[gecici_gorevlis] AS Aktif_calisan FROM (SELECT k.kurum_adi, s.sinif_adi, (Duruma gore bransadi sorgusu) AS bransadi, (Duruma gore unvadi sorgusu) AS unvanadi, p.personel_kadro_kurum, k.kurum_id, p.personel_calistigi_kurum, iif(p.personel_kadro_kurum = k.kurum_id,1,0) AS kadrolu,
  4. iif((SELECT COUNT(*) FROM izin i WHERE i.personel_id = p.personel_id AND sysdate BETWEEN i.izin_baslayis AND i.izin_bitis )=0 AND p.personel_calistigi_kurum = k.kurum_id AND (p.personel_calistigi_kurum = p.personel_kadro_kurum OR p.personel_not = 1) AND p.personel_durum <> 5 AND p.personel_durum <> 6,
  5. 1,0) AS kadrolu_aktif, iif((SELECT COUNT(*) FROM izin i WHERE i.personel_id = p.personel_id AND sysdate BETWEEN i.izin_baslayis AND i.izin_bitis )=1 AND p.personel_calistigi_kurum = k.kurum_id AND p.personel_calistigi_kurum <> p.personel_kadro_kurum AND p.personel_durum <> 6, 1,0) AS gecici_gorevli
  6. FROM personel p, kurumlar k, 1_sinif s WHERE ((k.kurum_kodu) IS NOT NULL) AND (p.personel_kadro_kurum = k.kurum_id OR p.personel_calistigi_kurum = k.kurum_id) AND p.personel_sinif = s.sinif_id) GROUP BY kurum_adi, sinif_adi, unvanadi, bransadi


Duruma gore unvan sorgusunda
kadrolu sütunundaki verileri sayarken;
Select u.unvan_adi from 2_unvan u where p.personel_unvan = u.unvan_id
kadrolu_aktif sütunundaki verileri sayarken
Select u.unvan_adi from 2_unvan u where IIf(p.personel_yandal_asistan Is Null,p.personel_unvan = u.unvan_id, 42=u.unvan_id)
Duruma gore branş sorgusunda
kadrolu sütunundaki verileri sayarken
Select b.brans_adi from 3_brans b where p.personel_brans = b.brans_id
kadrolu_aktif sütunundaki verileri sayarken
Select b.brans_adi from 3_brans b where IIf(p.personel_yandal_asistan Is Null,p.personel_brans = b.brans_id, p.personel_yandal_asistan=b.brans_id)
şeklinde çalışmalı ki istediğim şekilde verileri saymalı.
Ayrıca unvan ile ilgili sorguda yer alan 42=u.unvan_id 42 Asistan branşının id si.
Aslında ben yan_dal_asistan seçtiğimde 42 olan Asistan branşı olduğunu biliyorum ama bunu sorgu olarak nasıl belirtebilirim.
Örnek olarak yan_dal_asistan branşı olan Nefrolojiyi seçtiğimde branş_id = 220 ye denk gelmekte. brans tablosunda 220 nin unvan_id de 42 ye denk gelmekte. Yani ben yan_dal_asistanı branşı seçtiğimde direkt 42 idsini alabilmem gerekmekte. Bir bakıma gidip de sorguda u.unvan_id 42 yazmama gerek kalmaması lazım.
Bu durumun ile ilgili de yardımcı olabilirseniz memnun olurum. İyi geceler.



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [TABLO] çoklu Birleşik Giriş Kutusu RASİMPEH 2 140 19-09-2023, 04:53
Son Mesaj: RASİMPEH
  [SORGU] Sorguda Iif mart02 7 227 10-09-2023, 14:23
Son Mesaj: halily
access-sql-3 Access I Bulut Uygulamaları Ile Anlık çoklu Kullanıcı Erişimi BeyTor 12 592 23-04-2023, 22:05
Son Mesaj: BeyTor
  Sorguda Okşulla Göre Veri Girilen Yere Elle Veri Girişi ŞabanTR 4 179 09-01-2023, 13:31
Son Mesaj: ŞabanTR
  Option Group Wizard çoklu Seçim Yapabilmek Hk. YENIFENER 4 254 13-09-2022, 22:41
Son Mesaj: onur_can
access-sql-18 [VBA] Birleşik Liste Kutusu çoklu Seçim Temizle alperalper 2 263 10-08-2022, 16:28
Son Mesaj: alperalper
  [RAPOR] Açılan Kutuda çoklu Seçim Ile Rapor Açma hedefkaya 4 241 01-08-2022, 19:35
Son Mesaj: halily
  [VBA] Açılan Kutuda çoklu Seçim Ile Filtreleme hedefkaya 12 702 01-08-2022, 17:48
Son Mesaj: halily

Foruma Git:


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