none
SQL cümlesinde alt table kayıt sayısına göre WHERE koşulu ?

    Soru

  • Merhaba

    Aşağıdaki SQL cümlesinde x_seansogrencilerine biden çok öğrenci kayıtı yapılabiliniyor. SQL cümlesi sonucu için 1 2 veya 3 veya farklı sayıda öğrenci bulunan (x_seansogrencileri table ında bulunan kayıt sayısı) sonucu nasıl görebilirim ? Where koşuluna ne yazmam gerekiyor. Sonuçta aşağıdaki gibi baslangicsaati, bitis saati, gun, seans ve egitmen gözükmeli.

    SELECT        
    x_seansprogrami.x_baslangicsaati as x_baslangicsaati, 
    x_seansprogrami.x_bitissaati as x_bitissaati, 
    x_seansprogrami.x_gun as x_gun, 
    x_seansprogrami.x_seans as x_seans, 
    x_seansprogrami.x_egitmen as x_egitmen
    FROM  x_seansprogrami 
    OUTER APPLY (SELECT TOP 1 x_id, x_adi FROM x_seansegitmenleri WHERE x_seansprogrami.x_egitmen = x_seansegitmenleri.x_adi ) AS x_seansegitmenleri 
    OUTER APPLY (SELECT TOP 1 x_id, x_adi, x_seansturu, x_seansturadi, x_ogrencisayisi  FROM x_seans WHERE x_seansprogrami.x_seans = x_seans.x_adi ) AS x_seans 
    OUTER APPLY (SELECT TOP 1 x_id, x_yas, x_bitistarihi  FROM x_seansogrencileri WHERE x_seans.x_id = x_seansogrencileri.x_seansid AND x_seansogrencileri.x_bitistarihi>=@sontarih) AS x_seansogrencileri
    
    
    WHERE      (NOT (x_seansprogrami.x_id IS NULL)) AND x_seansogrencileri.x_bitistarihi>=@sontarih

    07 Haziran 2012 Perşembe 15:56

Yanıtlar

  • aşağıdaki satırı query e ekleyerek çözdüm.
    OUTER APPLY (SELECT  Count(x_id) as x_ogrencisayisi  FROM x_seansogrencileri WHERE x_seans.x_id = x_seansogrencileri.x_seansid AND x_seansogrencileri.x_bitistarihi>=@sontarih) AS x_seansogrencileri001
    

    • Yanıt Olarak İşaretleyen MSDN.CSharp 07 Haziran 2012 Perşembe 19:31
    07 Haziran 2012 Perşembe 19:31