DBGrid'in Tekrarlayan satırlarını birleştirmek

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
mpolat
Üye
Mesajlar: 96
Kayıt: 30 Ağu 2003 01:19
Konum: Malatya

DBGrid'in Tekrarlayan satırlarını birleştirmek

Mesaj gönderen mpolat »

S.A. Bir DBGrid var formda ve Tablodaki URUNKODU, URUNADI, MIKTARI alanlarını görüntülüyor. Örneğin:

Ürün Kodu Ürün Adı Miktarı
1001 Elma 1000
1002 Armut 1250
1003 Ayva 2500
1004 Karpuz 10000
1001 Elma 500

gibi bir çıktı alıyorum benim istediğim aynı ürüne ait satırları birleştirmek. Yani 1. satırda 1000 kg elma ve 5.satırda 500kg elma yazmak yerine 1.veya 5.satırda 1500 kg elma yazmak mümkün mü?
Herkese katkıları için şimdiden teşekkürler.
"İlmin anası sormaktır"
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

sql ile kolayca yapabilirsin.

SELECT URUNKODU, SUM(MIKTARI)
FROM TABLOiSMİ
GROUP BY URUNKODU

gibi. Kolay gelsin.
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Tam kod şu. Mustafa bey fieldın birini unutmuş :)

SELECT URUNKODU,URUNADI, SUM(MIKTARI) AS MIKTOPLAM
FROM TABLOiSMİ
GROUP BY URUNKODU,URUNADI

Yukardaki kod Önce URUNKODU alanına göre guruplama yapacak. URUN kodu aynı olan verilerin toplamını alacak. Ayrıca ürün kodu aynı olup ürün adı farklı olanları ayrı guruplayıp bunların toplamını da ayrıca alcaktır.
Dönen veri aşağıdaki gibi olacaktır.

1001 Elma 1500
1002 Armut 1250
1003 Ayva 2500
1004 Karpuz 10000

Ancak yukarda verdiğim kodda diyelim ki 1001 ürün koduna ait 2 tane ürün varsa yani veriler aşağıdaki gibiyse

1001 Elma 1000
1002 Armut 1250
1003 Ayva 2500
1004 Karpuz 10000
1001 Şeftali 500
1001 Elma 500

yukardaki SQL textin sonucu aşağıdaki gibi dönecektir.

1001 Elma 1500
1001 Şeftali 500
1002 Armut 1250
1003 Ayva 2500
1004 Karpuz 10000

Sevgiler...
Kullanıcı avatarı
mpolat
Üye
Mesajlar: 96
Kayıt: 30 Ağu 2003 01:19
Konum: Malatya

Mesaj gönderen mpolat »

İlginiz ve yardımlarınız için çok teşekkürler.
"İlmin anası sormaktır"
Kullanıcı avatarı
mpolat
Üye
Mesajlar: 96
Kayıt: 30 Ağu 2003 01:19
Konum: Malatya

Mesaj gönderen mpolat »

Merhaba,
Bu işlemi Table nesnesini kullanarak nasıl yapabiliriz acaba? Ben de Query kulllanıyordum fakat master-detail bağlantıda problem çıktı sanırım. O yüzden table kullanmayı düşünüyorum.
"İlmin anası sormaktır"
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Merhaba,

table ile çok takla attırman lazım hocam. Unut table'ı, Query bu iş için biçilmiş kaftan. Takıldığın neresi varsa, yazarsan yardımcı oluruz.

Kolay gelsin.
sair
Kıdemli Üye
Mesajlar: 288
Kayıt: 16 Haz 2003 04:41
Konum: Kastamonu
İletişim:

Mesaj gönderen sair »

Mustafa beyin dediği gibi çok takla attırman lazım table a. Hem MAster detail ilişkilerde neden sorun çıksın ki query lerde. Hiç bir sorun çıkmaz.
NErde hata aldın sor yardım edelim.
Master detail ilişklerde de süperdir query.
Sevgiler...
Kullanıcı avatarı
mpolat
Üye
Mesajlar: 96
Kayıt: 30 Ağu 2003 01:19
Konum: Malatya

Mesaj gönderen mpolat »

Abi öncelikle özür dilemek istiyorum.Bayram tatili işlerin birikmesi ve yoğunluğu derken forumu pek ziyeret edemedim. Ettiysem de bir göz gezdirip çıktım. Bu yüzden cevabım gecikti. Tekrarardan çok özür dilerim.

Gelelim konuya şimdi detail tablonun kayıtlarını oluşturacak veriyi ben text dosyadan okumak zorundayım. Query kullanarak master-detail ilişkiyi kurunca [Text Dosyayı Oku] butonuna tıkladığımda detail tablonun bağlı olduğu Grid'de herhangi bir değişme olmuyor. Yani bir kayıt işlemi yapamıyorum. Halbuki Queryleri biribirine bağlamadan önce [Text Dosyayı Oku] butonuna tıklarsam text dosyadaki veriyi okuyup kaydedebiliyorum. Database ile ilgili bir başka işlem yapmaya kalkıştığım zaman ise detail tabloda Primary Key olan AutoIncrement tipe sahip olan alanın bulunumadığına dair bir ileti alıyorum.
"İlmin anası sormaktır"
Cevapla