• 20-07-2019, 23:34:51
    #1
    Öncellikle hayırlı akşamlar. elimde birden fazla numara var . bu numaralardan hangisinin kaç adet geldiğini sorgu ile buluyorum .
    Sorgu kodu
     MySqlDataAdapter listele3 = new MySqlDataAdapter("SELECT COUNT(*), number FROM `data` WHERE id in (SELECT id+1 FROM `data` WHERE number = 1) GROUP BY number HAVING COUNT(*) > 0 ORDER BY COUNT(*) DESC", bag);
    DataTable oku3 = new DataTable();
    listele3.Fill(oku3);
    dataGridView3.DataSource = oku3;
    Yapmak istediğim şu 1 ile 10 arasındaki sayıların adetini bulmak , 11 ile 22 arasındaki sayıların adetini bulmak
    resme baktığımızda 1- ile 10 arasında 5 tane rakam var (1-5-7-9-8) bunların adet sayıların toplamı 25 .

    nasıl bir kod yazmalıyım ki bunu yapabileyim . hocalarımdan yardım istesen benim için yazarlarmı ? teşekürler.
  • 20-07-2019, 23:47:56
    #2
    Bu kod işini görecektir.
    using System;
                        
    public class Program
    {
        public static void Main()
        {
            int ondanbuyukolan = 0;
    int[] dizi = { 1, 5, 7, 12, 21, 18, 9, 8 };
    for (int i = 0; i < dizi.Length; i++)
    {
    if (dizi[i]<10)
    {
    ondanbuyukolan++;
    }
    }
            Console.WriteLine(ondanbuyukolan);
        }
    }
  • 21-07-2019, 00:53:55
    #3
    DataTable içinde aratmak istersen aşağıdaki kodu kullanabilirsin.

    /* eklenmesi gerekenler
    using System;
    using System.Data;
    using System.Linq;
    */
    public Tuple<int, int> GetCount(DataTable dt, int min, int max)
    {
    var result = dt.AsEnumerable().Where(num => num.Field<int>("number") >= min && num.Field<int>("number") <= max);
    int count = result.Count();
    int inCount = result.Sum(numCount => numCount.Field<int>("COUNT(*)"));
    return new Tuple<int, int>(count, inCount);
    }
    Kullanımı:
    var count = GetCount(datatable, 1, 10);
    Console.WriteLine("Belirlenen aralıkta {0} sonuç bulundu, toplam adet {1}.", count.Item1, count.Item2);
  • 21-07-2019, 01:21:52
    #4
    bahsettigin verilere göre bir tablo olusturdum hocam ve sonucu söyle cikardim.. Emin degilim tam istedigin bu muydu



    http://sqlfiddle.com/#!9/6c57b1/1

    her halukara karsi kodlari da ekleyeyim..

    db olusturma kodu

    create table data(number integer);
    
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(7);
    insert into data(number) values(7);
    insert into data(number) values(8);
    insert into data(number) values(9);
    insert into data(number) values(12);
    insert into data(number) values(18);
    insert into data(number) values(21);
    sorgu kodu
        SELECT
    count(CASE WHEN number between 1 and 10 then totalCount END) AS '1-10 Count',
    sum(CASE WHEN number between 1 and 10 then totalCount END) AS '1-10 Value',
    count(CASE WHEN number between 11 and 22 then totalCount END) AS '11-22 Count',
    sum(CASE WHEN number between 11 and 22 then totalCount END) AS '11-12 Value'
    FROM
    (SELECT COUNT(*) as totalCount, number FROM `data` GROUP BY number HAVING COUNT(*) > 0)
    as t1
    senin tablonun yapisini bilmedigim icin benzetmeye calistim. En son (select count ile baslayan) kismi kendi sorguna göre ayarlarsin.. ben db yazilimcisi degilim, daha iyi performans veren kodlar da yazilabilir. Bundan sonrasini grid den okuyarak alabilirsin.. Kodda anlamadigin yeri sorabilirsin

    kolay gelsin
  • 21-07-2019, 02:13:36
    #5
    ebubekirbastama adlı üyeden alıntı: mesajı görüntüle
    Bu kod işini görecektir.
    using System;
                        
    public class Program
    {
        public static void Main()
        {
            int ondanbuyukolan = 0;
    int[] dizi = { 1, 5, 7, 12, 21, 18, 9, 8 };
    for (int i = 0; i < dizi.Length; i++)
    {
    if (dizi[i]<10)
    {
    ondanbuyukolan++;
    }
    }
            Console.WriteLine(ondanbuyukolan);
        }
    }
    Cevap için teşekürler hocam. sorgu işemi yapıldıktan sonra elde edilen sonuçlara göre yapmam lazım hocam. Siz yanlış anladınız sanırım



    pr1d3 adlı üyeden alıntı: mesajı görüntüle
    DataTable içinde aratmak istersen aşağıdaki kodu kullanabilirsin.

    /* eklenmesi gerekenler
    using System;
    using System.Data;
    using System.Linq;
    */
    public Tuple<int, int> GetCount(DataTable dt, int min, int max)
    {
    var result = dt.AsEnumerable().Where(num => num.Field<int>("number") >= min && num.Field<int>("number") <= max);
    int count = result.Count();
    int inCount = result.Sum(numCount => numCount.Field<int>("COUNT(*)"));
    return new Tuple<int, int>(count, inCount);
    }
    Kullanımı:
    var count = GetCount(datatable, 1, 10);
    Console.WriteLine("Belirlenen aralıkta {0} sonuç bulundu, toplam adet {1}.", count.Item1, count.Item2);
    Cevap için teşekürler hocam . kod hata veriyor
    https://i.hizliresim.com/NLkGvY.jpg
  • 21-07-2019, 02:22:34
    #6
    kuntakinte adlı üyeden alıntı: mesajı görüntüle
    Cevap için teşekürler hocam. sorgu işemi yapıldıktan sonra elde edilen sonuçlara göre yapmam lazım hocam. Siz yanlış anladınız sanırım




    Cevap için teşekürler hocam . kod hata veriyor
    https://i.hizliresim.com/NLkGvY.jpg
    Ben tahmini yazdığım için tip yanlış olmuş hocam. Sizdeki datatableda Count(*) kolonunun DataType'ına bakın <int> yazan yeri o tiple değiştirin.
  • 21-07-2019, 02:23:33
    #7
    @kuntakinte; oradaki dizi örneğine datagridview koy dediğin gibi olacaktır
  • 21-07-2019, 02:25:23
    #8
    ertan2002 adlı üyeden alıntı: mesajı görüntüle
    bahsettigin verilere göre bir tablo olusturdum hocam ve sonucu söyle cikardim.. Emin degilim tam istedigin bu muydu



    http://sqlfiddle.com/#!9/6c57b1/1

    her halukara karsi kodlari da ekleyeyim..

    db olusturma kodu

    create table data(number integer);
    
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(1);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(5);
    insert into data(number) values(7);
    insert into data(number) values(7);
    insert into data(number) values(8);
    insert into data(number) values(9);
    insert into data(number) values(12);
    insert into data(number) values(18);
    insert into data(number) values(21);
    sorgu kodu
    SELECT
    count(CASE WHEN number between 1 and 10 then totalCount END) AS '1-10 Count',
    sum(CASE WHEN number between 1 and 10 then totalCount END) AS '1-10 Value',
    count(CASE WHEN number between 11 and 22 then totalCount END) AS '11-22 Count',
    sum(CASE WHEN number between 11 and 22 then totalCount END) AS '11-12 Value'
    FROM
    (SELECT COUNT(*) as totalCount, number FROM `data` GROUP BY number HAVING COUNT(*) > 0)
    as t1
    senin tablonun yapisini bilmedigim icin benzetmeye calistim. En son (select count ile baslayan) kismi kendi sorguna göre ayarlarsin.. ben db yazilimcisi degilim, daha iyi performans veren kodlar da yazilabilir. Bundan sonrasini grid den okuyarak alabilirsin.. Kodda anlamadigin yeri sorabilirsin

    kolay gelsin
    Cevap için teşekürler hocam. sorum yanlış anlaşılmış olabilir sorgu ile adet ve numaraları çekiyorum . şu şekilde bir kod olabilir, farklı bir sorgu ile dediğim işlemi yapmak yada benim kullandığım sorugunun sonucunu diziye aktarıp o dizenden yola çıkarak istenilen kod yazabilinir. veya @pr1d3 hocamızın yazdığı kod gibi dataTable içinde arama yapabiliriz.

    tablo şekli. id ve number
  • 21-07-2019, 12:59:17
    #9
    sen tbt'den misin hocam teamviewer verirsen gün icinde bakalim sorunlarina