• 17-04-2014, 21:28:21
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba arkadaşlar, bir ilan sistemi yapıyordum ama bir yerde mantık olarak takıldım, örenk olarak aşağıdaki gibi tablolar

    Uye
    UyeId, KullaniciAd
    
    Basvuru
    BasvuruId, IlanId, UyeId
    
    Ilan
    IlanId, IlanBaslik
    
        
    Gösterimi :
    ilan başlığı  (15) //bu başvuru sayısı
    ilan başlığı2 (21) //bu başvuru sayısı

    { ilan başlığı (ilana başvuran kişi sayısı) }

    Yan tarafındaki kalınla işaretli parantezde o ilana başvuranların sayısını göstermem gerekiyordu.
    Yapmam gereken topluca ilanları çekerek aynı anda yanında o ilana başvuran sayısınıda nasıl alabilirim?
  • 17-04-2014, 21:36:55
    #2
    .net ve entitiy frameworku yaklaşık 1 yıldır kullanmıyorum oyüzden tam hatırlamıyorum ama subquery ile o değeride bir aliasa atayarak kullanabilirsiniz
  • 17-04-2014, 22:03:33
    #3
    işte entity olmasada daha normal sql sorgusuna dökemedim, subqueryde

    SELECT * FROM Ilan WHERE UyeId = 16 (SELECT Count(*) From Basvuru where IlanId = (o anki ilanId))

    saçma oldu ama anlatmak istediğim UyeId sinden 5 satır kayıt gelse bile karşısında o kadar saydırımı normal sorguyu yapabilsem entity e dökerimde sorguyu anlamadım.
  • 18-04-2014, 00:52:10
    #4
    EF ile Model dosyasında ki class isimlerine göre bu şekilde alabilirsin
    db.Basvuru.Where(x=>x.IlanId==1).Count();
  • 18-04-2014, 14:35:30
    #5
    Merhaba;

    Sana örnek sql sorgusu yazıyorum. Tablo isimlerini bilemediğim için senin üsteki yazmış olduğun tablo adını kullanacağım.

    T-SQL Sorgusu :
    SELECT COUNT(id) as sayisi,adi FROM (
    SELECT DISTINCT Basvuru.basvuru_adi AS adi,Basvuru.basvuru_id AS id
    FROM Basvuru INNER JOIN
    Basvuru ON Ilan.ilan_id = Basvuru.ilan_id
    ) AS dt
    GROUP BY adi,sayisi
    ORDER BY sayisi DESC


    Tablo yapını bilemediğim için içindeki sorgu değişkenlik gösterebilir

    Bu sorgu sana şöyle bi sonuç döndürür

    Bilişim (10)
    Pazarlama (15)
    Halk İlişkiler (20)
    .
    .
    .


    Kolay gelsin.
  • 19-04-2014, 11:39:36
    #6
    yorumlar için sağolun çözümü stored procedureler ile çözdüm sorguda şunu kullandım

    select IlanBaslik (select Count(*) from Basvuru where IlanId = m.IlanId) as Sayi from Ilan m where UyeId = 16