En iyi yanıtlayıcılar
Sorgu

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.
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
-
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
- Düzenleyen burhan süleyman vural 4 Aralık 2012 Salı 21:12
- Yanıt Olarak İşaretleyen nlylmz 9 Aralık 2012 Pazar 16:28
Tüm Yanıtlar
-
-
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
-
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
-
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
- Düzenleyen burhan süleyman vural 4 Aralık 2012 Salı 21:12
- Yanıt Olarak İşaretleyen nlylmz 9 Aralık 2012 Pazar 16:28