• 31-10-2019, 18:38:14
    #1
    Merhabalar hocalar iyi akşamlar çümleten. bir yerde tıkanıp kaldım yardım ederseniz çok makbule geçer.
    Yapmak istediğim databese'deki (id,number) 1000 tane numaradan hangisinin kaç defa geldiğini bulmak ve datagridview basmak buraya kadar sorun yok. aşagıda kodları ve çıktı resmi mevcut

    MySqlDataAdapter listele2 = new MySqlDataAdapter("SELECT number, COUNT(*) AS adet FROM `data` GROUP BY number ORDER BY COUNT(*)DESC", bag); //sorgu ilemi
    DataTable oku2 = new DataTable();
    listele2.Fill(oku2);
    dataGridView1.DataSource = oku2;
    
    
    
    string[] sayı = new string[dataGridView1.Rows.Count];
    string[] adet = new string[dataGridView1.Rows.Count];
    for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
    {
    sayı[i] = dataGridView1.Rows[i].Cells[0].Value.ToString();
    }
    
    for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
    {
    adet[i] = dataGridView1.Rows[i].Cells[1].Value.ToString();
    }

    Şimdi bundan sonra yapmak istediğim olay şu . 8'ci sıradaki 15 numarasının adeti 10 . Eğer 8'ci sıradan sonraki satırlarda 8'ci satırın adetine eşit var ise 8'ci satırın numarasına ve eşit olan satırın numarasından hangisi databesede en eski onu bulup 8' ci satıra eklemesi gerek.

    Örnek tabloya göre

    8 satır 15 -10
    9 satır 3-10
    10 satır 34-10
    11 satır 35-10

    8' ci satırın adetine eşit 3 tane daha satırımız var . 11 satır daki 35 numara en eski data bu yüzden 8 satıra onun geçmesi gerek. bunu nasıl yapabılırım yardımlarınızı bekliyorum.
  • 31-10-2019, 18:48:03
    #2
    anladığım kadarıyla number alanı büyük olan daha eski kayıt.

    Yani sorgunun soruna, ORDER BY COUNT(*) DESC, number desc
    şeklinde ekleme yaparsan sorun çözülecektir.
  • 31-10-2019, 18:57:14
    #3
    @ibuluter Öyle yapınca büyükten küçüğe göre ayarlıyor . benim itediğim İd' si en eski olanı bulması onların içinde olanlardan
  • 31-10-2019, 19:00:27
    #4
    kuntakinte adlı üyeden alıntı: mesajı görüntüle
    @ibuluter Öyle yapınca büyükten küçüğe göre ayarlıyor . benim itediğim İd' si en eski olanı bulması onların içinde olanlardan
    Number alanı id alanı değil mi hocam? number alanı en büyük olan en eski demek değil mi yani? ya da tam tersi number alanı en küçük olan en eski değil mi?
  • 31-10-2019, 19:03:38
    #5
    S.a üstadım halen çözüm bulamadıysan whatshapp'dan yaz uzak masaüstü ile bakalım
  • 31-10-2019, 19:05:45
    #6
    ibuluter adlı üyeden alıntı: mesajı görüntüle
    anladığım kadarıyla number alanı büyük olan daha eski kayıt.

    Yani sorgunun soruna, ORDER BY COUNT(*) DESC, number desc
    şeklinde ekleme yaparsan sorun çözülecektir.
    ibuluter adlı üyeden alıntı: mesajı görüntüle
    Number alanı id alanı değil mi hocam? number alanı en büyük olan en eski demek değil mi yani? ya da tam tersi number alanı en küçük olan en eski değil mi?
    hayır hocam toblo şu sekilde id ve number şeklinde . benim sorugu tablosu içinde en fazla olan rakamları bulup adetleri ile ekrana basıyor .
    dediğim olay gerçekleşince id ye göre en eskiyi bulmasını istiyorum
  • 31-10-2019, 19:08:35
    #7
    kuntakinte adlı üyeden alıntı: mesajı görüntüle
    hayır hocam toblo şu sekilde id ve number şeklinde . benim sorugu tablosu içinde en fazla olan rakamları bulup adetleri ile ekrana basıyor .
    dediğim olay gerçekleşince id ye göre en eskiyi bulmasını istiyorum

    ORDER BY adet DESC, id

    Önce adete göre sıralayacak, aynı adette olanların içinde de id'si küçükten büyüğe göre sıralamış olacak.

    o zaman sonu bu şekilde olacak hocam.
  • 31-10-2019, 20:00:20
    #8
    sorun çözülmüştür teşekürler @ibuluter @ebubekirbastama

    SELECT id,number, COUNT(*) AS adet  FROM `data` GROUP BY number ORDER BY COUNT(*)DESC,id