Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
MSSQL Sorgulama Sorunu
#11
Bu arada case when hatalı kullanmışsın sql de case when ....=... then 'eğer doğruysa' else 'doğru değilse' end, delphide if else gibi çalışır
MAX(case when pdksshift.islemtarihi = @tarihler1 then pdksshift.shift end) AS @tarihler1, satırlarında
case when pdksshift.islemtarihi = @tarihler1 then pdksshift.shift else '2020-01-01' end gibi kulanılmalı
yoksa pdksshift.islemtarihi = @tarihler1 sağlanmazsa sql ne yazacağını bilmez
İyi çalışmalar
Cevapla
#12
Aslında bu gibi bir grup kayda karşılık bir kayıt eşleşen durumlarda join yaparken ve bir kayda o gruptan bir satır hesaplanarak eşleştirme yapılıyorsa önce o grupların olduğu tabloyu diğer tabloya uygun bir hale getirecek alt sorgu yazıp bu alt sorgu ile join yapmak daha uygun olabilir.
select
  pers.sirano,pers.sicil,pers.adsoyad, pdk_sshift.*
 -->, pers.* /*şeklinde tablodan gerekli tüm alanlar burada kullanılabilir*/
from pdkspersonel as pers
inner join (
 SELECT sicil,
   MAX(case when islemtarihi = @tarihler1 then [shift] end) AS tarihler1,
   MAX(case when islemtarihi = @tarihler2 then [shift] end) AS tarihler2,
   MAX(case when islemtarihi = @tarihler3 then [shift] end) AS tarihler3,
   MAX(case when islemtarihi = @tarihler4 then [shift] end) AS tarihler4,
   MAX(case when islemtarihi = @tarihler5 then [shift] end) AS tarihler5,
   MAX(case when islemtarihi = @tarihler6 then [shift] end) AS tarihler6,
   MAX(case when islemtarihi = @tarihler7 then [shift] end) AS tarihler7
 FROM pdksshift
 GROUP BY sicil
) as pdk_sshift
on pers.sicil=pdk_sshift.sicil
WHERE pers.departman = @departman and pers.isciktar IS NULL
ORDER BY pers.sirano
şeklinde bir sorgu ile önce pdksshift tablosunda her "sicil" alanındaki değere göre gerekli kayıtlar çekilir daha sonra bu liste pdkspersonel tablosuna ilişkilendirilir. Böylelikle group by işleminin pdkspersonel tablosuyla bir alakası kalmaz ve gereken diğer tüm pdkspersonel tablo alanları sorgulamada kullanılabilir.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  MSSQL Data downgrade (Alt sürüme veri aktarma) işlemleri adelphiforumz 0 518 23-03-2023, Saat: 11:13
Son Yorum: adelphiforumz
  MSSQL eş zamanlı yazma ve okuma kontrolü (Çözüldü) adelphiforumz 5 2.000 31-12-2021, Saat: 13:04
Son Yorum: adelphiforumz
  MSSQL TableType tipinde parametre nasıl geçilir? adelphiforumz 28 7.605 29-12-2021, Saat: 11:37
Son Yorum: mrmarman
  Toplu insert işlemi hız sorunu (Çözüldü) adelphiforumz 9 3.239 13-12-2021, Saat: 20:23
Son Yorum: apachi2006
  Değer ve yetkiye göre sorgulama denizfatihi 0 755 26-09-2021, Saat: 12:23
Son Yorum: denizfatihi



Konuyu Okuyanlar: 1 Ziyaretçi