Aynı veriden kaç tane ? Query,DBgrid

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
mulus
Üye
Mesajlar: 67
Kayıt: 30 May 2005 10:42
Konum: Bursa
İletişim:

Aynı veriden kaç tane ? Query,DBgrid

Mesaj gönderen mulus »

Selamlar,
Elimde şu şekilde bir tablo var;

zaman ürün tipi
-------- ----------
12.12.2004 A ürünü
23.04.2004 B ürünü
21.02.2005 A ürünü
30.02.2005 B ürünü
24.03.2005 C ürünü

SQL olarak "select * from veri.db where zaman between :a and :b" şeklinde verileri çekiyor ve DBGrid'te gösteriyorum. a ve b parametrelerine tarih aralığı veriyorum ve o zaman dili içerisinde üretilen ürünleri sıralıyorum. Buraya kadar bir sorun yok fakat yapmak istediğim birde bu tarih aralığında sıralanan bu verilerin adet olarak toplamlarını almak. Yani gösterilen listede kaç tane A ürününden ve kaç tane B ürününden olduğunu bulmak ve "a = 4 adet, B= 7 adet" gibi bir label'a yada bir yere yazarak göstermek. Bir Query harici başka bir Query'i kullanmak ta istemiyorum çünkü veriler ağ üzerinden paradox tablodan geliyor. Belki bir array açılıp bunun içerisine veriler eklenebilir ve sonra bu arrayde aynı olanlar sayılabilir ama array oluşturulurken eleman sayısı belirtilmesi gerekiyor ki bu durumda benim eleman sayım değişebiliyor. Yardımcı olacak ve olan arkadaşlara şimdiden teşekkür ederim.
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

İkinci bir query ile istenen alana göre gruplanıp count(*) toplamları/tekrar sayıları alınabilir. Daha sonra da birinci query ye eklenecek bir CalculatedField ile bu ikinci Query den değeri OnCalculate de locate le bulup aktarabilirsin :idea: Sonuç şöyle olacak;

Zaman ürün tipi Tekrar sayısı
-------- ------------------------
12.12.2004 A ürünü 2
23.04.2004 B ürünü 2
21.02.2005 A ürünü 2
30.02.2005 B ürünü 2
24.03.2005 C ürünü 1

şeklinde.[/quote]
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
mulus
Üye
Mesajlar: 67
Kayıt: 30 May 2005 10:42
Konum: Bursa
İletişim:

Mesaj gönderen mulus »

Dediğim gibi Paradox tablo olduğu ve ağ üzerinden kullanıldığı için fazla query gönderipte bozulmasına sebebiyet vermek istemiyorum. ama ben şöyle bir çözüm buldum. Bir listview ekledim ve listview üzerine verileri ekledim eğer listviewda kayıt yoksa ekleyip değerini 1 yapıyor varsa 1 arttırıyor :) VCL olarak biraz kastı ama olsun database i fazla riske atmak istemiyorum. Yinede cevap için teşekkür ederim.
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

Birşeyi merak ettim, olayı bu kadar detaylı düşünüyorsunuz ama paradox kullanıyorsunuz..Özel bi nedeni mi var acaba?
mulus
Üye
Mesajlar: 67
Kayıt: 30 May 2005 10:42
Konum: Bursa
İletişim:

Mesaj gönderen mulus »

bLue aLonE yazdı:Birşeyi merak ettim, olayı bu kadar detaylı düşünüyorsunuz ama paradox kullanıyorsunuz..Özel bi nedeni mi var acaba?
:roll: malesef böyle bir zorunluluğum var... kaynak kodu elimde olmayan ve makinalardan veri okuyan bir program var ve yapanda bunu paradox kullanarak yapmış. Mecburen onu kullanmak zorunda kalıyorum. Biraz daha kendimi geliştirdikten ve vakit bulduktan sonra Mysql kullanarak kendim yazmayı deneyeceğim.
Cevapla