none
Sorgu RRS feed

  • Soru

  • merhabalar;

    bir problemim var ve yardımlarınızı bekliyorum.

    İller isminde bir tablom var ve bu tablo içinde A partisi, B partisi ve Plaka_No ve il isimleri satırları var. A partisinin sütunlarında hangi ile denk geliyorsa o ilin oy miktarı yazılı. Örneğin Ankara dan 1.500 oy almış gibi. Aynı şekilde B partiside bu tarz bir bilgi tutuyor. Benim yapmak istediğim hangi ilde hangi parti daha başarılı olmuş bunu bulmak. Yani ankarada hangi partinin oy oranı daha fazla bunu bulmak istiyorum.  

    4 Aralık 2012 Salı 16:11

Yanıtlar

  • SELECT IL_ADI,PLAKA_NO,
    --Buraya koşulu yazıyoruz.
    --Eğer A partisi>=B partisi 'A' yazdır değilse 'B' yazdır.
    CASE WHEN A_PARTISI>=B_PARTISI THEN 'A' ELSE 'B' END [Büyük Parti]
    FROM ILLER


    Ahmet Kaymaz
    http://www.ahmetkaymaz.com
    C# VB.NET ASP.NET kitabı

    • Yanıt Olarak Öneren Ali Rıza İnceoğlu 5 Aralık 2012 Çarşamba 08:33
    • Yanıt Olarak İşaretleyen nlylmz 5 Aralık 2012 Çarşamba 09:27
    4 Aralık 2012 Salı 20:12
  • Benim ki kabaca bir kurgu pek kullanışlı olmaz ama örnek olması açısından bulunsun, fikir verebilir belki;

    İller ve oylar isimli iki tablo oluşturup iller tablosundan satir satir illeri okuyup oylar tablosundan o anki ile ait en fazla oy almış parti ve oy oranını bulabiliriz.

    Veritabanı dosyamızın adı  OyOranlari ve 2 tablo tanımlıyoruz ;

    iller tablosunda ilPlaka, ilAd isimli iki alanımız olsun, oylar tablosunda da ilPlaka, ilAdi, partiAdi, oyOrani isimli alanlarımız olsun ve aşağıdaki kodu yazıp çalıştırıp deneyiniz.

    Tabi siz bu verileri üçüncü bir tabloya kaydedip veya geçici bir tablo oluşyurup oraya atayıp oradan alıp kullanabilirsiniz de.

    USE OyOranlari declare @iladi nvarchar(50); declare satir cursor for

    SELECT ilAdi from iller OPEN satir FETCH NEXT FROM satir INTO @iladi WHILE @@FETCH_STATUS = 0 BEGIN SELECT ilAdi,partiAdi,oyOrani FROM oylar WHERE oyOrani = (SELECT MAX(oyOrani) FROM oylar WHERE ilAdi=@iladi) FETCH NEXT FROM satir INTO @iladi END CLOSE satir DEALLOCATE satir



    burhansuleymanvural@windowslive.com







    4 Aralık 2012 Salı 20:21

Tüm Yanıtlar

  • tablonun yapısını gösterebilirmisiniz ben belki yazıdan yanlış anlıyor olabilirim tablo yapısını.

    burhansuleymanvural@windowslive.com

    4 Aralık 2012 Salı 16:33
  • Tablo aşağıdaki gibi, dediğim gibi adana da A partisi daha çok oy almış, Adıyamanda da B partisi daha çok oy almış. Bende hangi ilde hangi partinin daha çok oy aldığını sql sorgusu biçiminde yazmaya çalışıyorum.

    IL_ADI          PLAKA_NO       A_PARTISI         B_PARTISI

    ADANA          01                  168.070              99.421

    ADIYAMAN    02                   75.451               97.856

    4 Aralık 2012 Salı 17:00
  • SELECT IL_ADI,PLAKA_NO,
    --Buraya koşulu yazıyoruz.
    --Eğer A partisi>=B partisi 'A' yazdır değilse 'B' yazdır.
    CASE WHEN A_PARTISI>=B_PARTISI THEN 'A' ELSE 'B' END [Büyük Parti]
    FROM ILLER


    Ahmet Kaymaz
    http://www.ahmetkaymaz.com
    C# VB.NET ASP.NET kitabı

    • Yanıt Olarak Öneren Ali Rıza İnceoğlu 5 Aralık 2012 Çarşamba 08:33
    • Yanıt Olarak İşaretleyen nlylmz 5 Aralık 2012 Çarşamba 09:27
    4 Aralık 2012 Salı 20:12
  • Benim ki kabaca bir kurgu pek kullanışlı olmaz ama örnek olması açısından bulunsun, fikir verebilir belki;

    İller ve oylar isimli iki tablo oluşturup iller tablosundan satir satir illeri okuyup oylar tablosundan o anki ile ait en fazla oy almış parti ve oy oranını bulabiliriz.

    Veritabanı dosyamızın adı  OyOranlari ve 2 tablo tanımlıyoruz ;

    iller tablosunda ilPlaka, ilAd isimli iki alanımız olsun, oylar tablosunda da ilPlaka, ilAdi, partiAdi, oyOrani isimli alanlarımız olsun ve aşağıdaki kodu yazıp çalıştırıp deneyiniz.

    Tabi siz bu verileri üçüncü bir tabloya kaydedip veya geçici bir tablo oluşyurup oraya atayıp oradan alıp kullanabilirsiniz de.

    USE OyOranlari declare @iladi nvarchar(50); declare satir cursor for

    SELECT ilAdi from iller OPEN satir FETCH NEXT FROM satir INTO @iladi WHILE @@FETCH_STATUS = 0 BEGIN SELECT ilAdi,partiAdi,oyOrani FROM oylar WHERE oyOrani = (SELECT MAX(oyOrani) FROM oylar WHERE ilAdi=@iladi) FETCH NEXT FROM satir INTO @iladi END CLOSE satir DEALLOCATE satir



    burhansuleymanvural@windowslive.com







    4 Aralık 2012 Salı 20:21