Duyuruyu Kapat
Facebook Gözat
Twitter Gözat

Karişik bir select

Konu, 'Veritabanları' kısmında Turok tarafından paylaşıldı.

  1. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    Merhabalar!Arkadaşlar sorulan sorulara verilen cevapları tutan söyle bir tablomuz var:
    Tablo sonuc
    Alanlar:user,toplam,dogru,sonsoru_id

    Bu tablodan bir seferde en yüksek skoru alanlardan aşağı doğru verilen limit kadar kaydı çekmek istiyorum.
    Bana Gerekli alanlar user,toplam ve dogru.
    Skor hesaplamada (örneğin ) her doğruya 5 puan
    her yanlışada -10 puan kullanilacak.Yanlış sayısı toplamdan doğru çıkarılarak hesaplanacak.
    Ben 2 sorguda alabildim sonucu.Bunu tek sorguda nasıl alırız?
     
  2. mkarabulut

    mkarabulut Misafir

    Ben tam olarak toplam ve doğru alanlarının ne olduklarını anlamadım ,aslında bi kaç örnek kayıt girerek biraz daha açıklamanı isterdim. Anladığım kadarıyla şöyle bi sorgu yazdım ama kastettiğin bu mu bilemiyorum
    Kod:
    SELECT user,count(toplam) as tpl,count(dogru) as dgr,
           ((tpl-dgr) * -10 + (dgr * 5)) as skor
    FROM tablo
    ORDER By skor DESC
    GROUP BY user
    LIMIT 10
    
     
  3. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    Teşekkür mkarabulut.şu şekilde halloldu:
    SELECT user,toplam,dogru,
    ((toplam-dogru) * -10 + (dogru * 5)) as skor
    FROM tablo
    ORDER By skor DESC
    LIMIT 5
     
  4. mkarabulut

    mkarabulut Misafir

    önemli değil her ne kadar pek faydam dokunmuşa benzemese de ..:)
    Zaten yanlış anladığımı biliyordum..:)
     
  5. Turok

    Turok Üye

    Kayıt:
    19 Aralık 2002
    Mesajlar:
    233
    Beğenilen Mesajlar:
    0
    Meslek:
    Kurucu Ortak, Turkcell ,Vodafone, Avea 3.Party Sof
    Şehir:
    A, A
    Yok epey faydan oldu.Benim gece kafam karişiktı aşagıdaki hesaplamayı yapamadım.
    ((toplam-dogru) * -10 + (dogru * 5)) as skor