İstatistik

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

ustalarım,

hazırcılık yaptığımı düşüneceksiniz belki ama bi başlangıç için el atsanız diyorum. yapmak istediğim;

aylar....evden....işyerinden....
ocak.......?..............?............
şubat......?..............?...........

yukarıdaki gibi bi çıktı almak istiyorum önce form üzerinde görünmeli daha sonra qreport ile çıktı almak istiyorum.

Burada sql yazarken misalen ocak ayı için, tablo içindeki 01.01.2004 ile 31.01.2004 tarihleri arasındaki 'evden' olanların sayılarını ocak....?.... olan yere yaz (topla) diyerek, diğerleri içinde aynı yöntemle tüm yılın dökümünü almak ve sonucu form üzerinde göstermek daha sonra çıktısını almak istiyorum. Bu olay standart olarak her ay yapılıyor. Burada yıl devri olduğunda tarih aralığınıda değiştirebilmeliyim. Karışıkmı anlattım bilmiyoırum ama eğer anlata bildim ise başlangıç için bi örnek yaza bilirmisiniz.

Teşekkür ve saygılar
kolay gelsin
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Kod: Tümünü seç

Select MONTH(Tarih),Sum(Evden),Sum(Isyerinden)
FROM Tablo
GROUP BY MONTH(Tarih)
Böyle birşey senin işini görecektir. Bu aylara göre gruplama yaparak istediğin değerlerin toplamını alır.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Sayın ustam,

verdiğiniz ipucunu öncelikle delphi tarafında yapmayı düşündüm çünki vt tarafına halen hazır diğilim heralde, oradan delphi tarafına aktarma falan gibi.

ipucundan hareketle delphi tarafında

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
  ibquery1.Close;
  ibquery1.SQL.Clear;
  ibquery1.SQL.Add('select MONTH(01.01.2004),SUM(EVDEN HIRSIZLIK)');
  ibquery1.SQL.Add('FROM RAPORLAR');

  ibquery1.Open;
end;
böle bi deneme yaptım, ve dinamik sql error -line 1 char 8 MONTH' hatası verdi

sorguyu değişik şekillerde yapmayı denedim yinede olmadı hatam nerede acaba yardımcı olabilirmisiniz.

vt=firebird ve ibdatase, transaction ve ibquery kullandım

saygılarımla
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Ustalarım Selam;

Bu yaptığım acemiliğe güleceğinizi biliyorum, bişiler yapmaya çalışıyorum.

Yukarıda belirttiğim sorunum için şöle bişi yaptım istediğimi veriyor fakat bu işlemi 12 ay ve 23 alan için düşünüldüğünde ne kadar mantıksız bi çözüm olduğunu bende anlıyorum fakat şimdilik bunu yapabildim.

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
var
 Tarih1,Tarih2:TDate;
 begin
  ibquery1.Close;
  ibquery1.SQL.Clear;
  ibquery1.SQL.Add('select*from RAPORLAR');
  ibquery1.SQL.Add('where INCTARIHI Between :Tarih1 and :Tarih2 and ISTOLYTURU=:ISTOLYTURU');
  ibquery1.ParamByName('Tarih1').AsDate:=strtodate('01.01.2004');
  ibquery1.ParamByName('Tarih2').AsDate:=strtodate('31.01.2004');
  ibquery1.ParamByName('ISTOLYTURU').AsDate:='EVDEN HIRSIZLIK';
  ibquery1.Open;
  ibquery1.Last;
end;

procedure TForm1.DataSource2DataChange(Sender: TObject; Field: TField);
begin
  label9.Caption :=inttostr(ibquery1.RecordCount);
end;
evet oluşturduğum bu fakat bu 12 ay için ve 23 farklı alan için olacak.

Veri tabanında yapamadım yapabilsemde yeni sorular çıkacak karşıma delphide nasıl göstereceğim gibi.

Yukarıdakini nasıl düzenleyebiliriz bu 12 ay ve 23 farklı alan için acaba.

Teşekkür ve saygılarla
Cevapla