Sadece sorun oldum galiba soru sormaktan başka iş yapmıyorum. Ama sorularımla insanların önünü açmaya çalışıyorum.
Yine bir sorum olacak.
Bir table var. Kullanacağım sahalar şunlar:
sicilno,adsoyad,sontarih,kalantutar,kalangecikme
aynı sicil numaralı kişinin bu tableda birden fazla kaydı var.
Bu olayı sql de halletmeye çalışıyorum.
şöyle bir sql yazdım. Delphi de kod ile çalışıyor. İşlem biraz karmaşık ama.
Yapmak istediğim şu.
Aynı kişinin kalantutar ve kalangecikme değerlerini toplatarak tek satırda yazdırmak.
Yalnız takıldığım yer şurası:
kalangecikme değerleri tabledan alınmayacak. hesapla bulunacak. Bunun formulu şu.
Delphi de şöyle yazılabilir.
kalangecikme:=daysbetween(now,strtodate('01.01.2005'))*(dmsulama.TSabitgecikmefaiz.Value/(30*100));
buradaki 01.01.2005 tarihi yerine bir değişken olmalı ve bu değer tabledaki sontarih değeri olmalı.
SQL satırlarım da şunlar.
s:=floattostr(kalangecikme);
SListe.Sql.Clear;
SListe.Sql.add('select csicilno,adsoyad,sum(kalantutar+('+
s+
'*kalantutar)) kalan from tahakkuk');
SListe.Sql.Add('where tahakkukdonem<>:tahakkukdonem');
SListe.Sql.Add('group by csicilno');
SListe.Close;
SListe.Params[0].Value:=TSabitcalismadonemi.Value;
SListe.Open;
Ben tarih değerini de sql.add komnutunu yazdırırken alıp işlem yaptıramadım.
Ya da daha basit bir yol
İki tarih arasındaki farkı sql de nasıl bulurum. Sontarih fieldım string tipindedir. Bununda sql de tarih tiipine çevrilerek işlem yapılması gerekir.
Teşekkürler.
Mysql 4.1 kullanıyorum. Delphi 6 ve winzeos