Arama butonu
Bu konudaki kullanıcılar: 1 misafir
8
Cevap
2054
Tıklama
0
Öne Çıkarma
C# Veritabanında Aynı Olan Verileri Toplama ?
E
7 yıl
Çavuş
Konu Sahibi

İyi Akşamlar, sorunumu şöyle açıklayayım.

Şimdi ürünadını ve miktarını tuttuğum bir access veri tabanım var ve datagridview ile de görüntülüyorum. Ayrı bir Form açtım. Bunu listview e aktarıyorum ve oradan görünteleme yapbiliyorum. Fakat sorunum şu ki; aynı olan ürünleri bulacak , miktarlarını toplayacak ve tek ürün olarak gösterip karşısına o ürünlerin toplamını verecek. Şöyle örnekleyebilirim.

Elma ||| 3
Ayva ||| 5
Armut||| 7
Elma ||| 8
Armut||| 10

Listelerken de;

Elma ||| 11
Ayva ||| 5
Armut||| 17

şeklinde olmasını istiyorum. Dersenizki illa listviewde mi olacak hayır, datagridviewlede olabilir, listelemeden de datareader ile olabilir. ama bir türlü şu gruplandırmayı beceremedim. Yardımlarınız için şimdiden teşekkür ederim.



G
7 yıl
Yarbay

E
7 yıl
Çavuş
Konu Sahibi

quote:

Orijinalden alıntı: Gökşen PASLI

https://www.w3resource.com/sql/aggregate-functions/sum-with-group-by.php

Çok işime yaradı, tam da istediğim bu, çok teşekkür ederim :)



İ
5 yıl
Yüzbaşı

quote:

Orijinalden alıntı: Gökşen PASLI

https://www.w3resource.com/sql/aggregate-functions/sum-with-group-by.php
Peki bunu C#'da nasıl yapabiliriz?
SQL'e değil de form'a yazmak istiyorum. Aradım ama bulamadım. :)


Bu mesaja 1 cevap geldi.
E
5 yıl
Çavuş
Konu Sahibi

Bu sql cümlesini c# ta kullanabilirsin :)



< Bu ileti DH mobil uygulamasından atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @individual
İ
5 yıl
Yüzbaşı

Merhaba,
Kabaca denemiştim ama biraz daha zorlayayım.
Teşekkürler


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @emirhan23
E
5 yıl
Çavuş
Konu Sahibi

Yarın size örnek kod bloğu göndereyim 🤗



< Bu ileti DH mobil uygulamasından atıldı >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @individual
İ
5 yıl
Yüzbaşı

Yalnız ben listview için deniyorum. Sizin elinizde uygun bir şey varsa gönderebilirseniz çok iyi olur. Kurcalayarak bir şekilde çalıştırabilirim diye düşünüyorum. Teşekkürler



< Bu ileti mobil sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @emirhan23
E
5 yıl
Çavuş
Konu Sahibi


string kayit = "Select UrunAdi, SUM(Mikseregoreuretim), SUM(Torbayagoreuretim) from Uretim where Tarih>=@tar1 and Tarih<=@tar2 Group By UrunAdi";
//Uretim tablosundaki sorgu.
OleDbCommand komut2 = new OleDbCommand(kayit, baglanti);
//Sorgumuzu ve baglantimizi parametre olarak alan bir OleDbCommand nesnesi oluşturuyoruz.
OleDbDataAdapter da = new OleDbDataAdapter(komut2);
//OleDbDataAdapter sınıfı verilerin databaseden aktarılması işlemini gerçekleştirir.

da.SelectCommand.Parameters.AddWithValue("@tar1", dateTimePicker1.Value.ToShortDateString());
da.SelectCommand.Parameters.AddWithValue("@tar2", dateTimePicker2.Value.ToShortDateString());

DataTable dt = new DataTable();

da.Fill(dt);

dt.Rows.Add(); //SATIR EKLEME
dt.Rows.Add(); //SATIR EKLEME
dt.Rows.Add(); //SATIR EKLEME
dt.Rows.Add(); //SATIR EKLEME
dt.Rows.Add(); //SATIR EKLEME

dataGridView1.DataSource = dt;// Datagridview hücre toplamını alt satıra yazdırma başlangıç
double Toplam = 0;
double Toplam2 = 0;
int Satır = dataGridView1.Rows.Count;
for (int i = 0; i < Satır - 1; i++)
{
if (dataGridView1.Rows[i].Cells[1].Value != DBNull.Value)
{
Toplam += Convert.ToDouble(dataGridView1[1, i].Value);
}
}

for (int i = 0; i < Satır - 1; i++)
{
if (dataGridView1.Rows[i].Cells[2].Value != DBNull.Value)
{
Toplam2 += Convert.ToDouble(dataGridView1[2, i].Value);
}
}

double Toplam3 = 0;
Toplam3 = Toplam - Toplam2;

dataGridView1.Rows[dataGridView1.Rows.Count - 4].Cells[0].Value = "Toplam Miksere Göre Üretim Miktarı";
dataGridView1.Rows[dataGridView1.Rows.Count - 4].Cells[1].Value = Toplam.ToString(); // Datagridview hücre toplamını alt satıra yazdırma bitiş

dataGridView1.Rows[dataGridView1.Rows.Count - 3].Cells[0].Value = "Toplam Torbaya Göre Üretim Miktarı";
dataGridView1.Rows[dataGridView1.Rows.Count - 3].Cells[2].Value = Toplam2.ToString(); // Datagridview hücre toplamını alt satıra yazdırma bitiş

dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells[0].Value = "Mikser - Torba Üretim Farkı";
dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells[1].Value = Toplam3.ToString(); // Datagridview hücre toplamını alt satıra yazdırma bitiş

dataGridView1.Columns[0].HeaderText = "Ürün Adı"; //Datagridview sütun adı gir
dataGridView1.Columns[0].Width = 300; //Datagridview sütun genişliğini gir

dataGridView1.Columns[1].HeaderText = "Miksere Göre Üretim Miktarı";
dataGridView1.Columns[1].Width = 170;

dataGridView1.Columns[2].HeaderText = "Torbaya Göre Üretim Miktarı";
dataGridView1.Columns[2].Width = 170;



Şöyle açıklayayım; Uretim tablomda UrunAdi sütununa göre Mikseregoreuretim ve Torbayagoreuretim sütunlarının toplamlarını belirlediğim iki tarih arasında al ve datagridview de sütun ve satır ekleyerek yazdır.



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.