id nosu küçük olan kayıtlarda kalan toplama?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
id nosu küçük olan kayıtlarda kalan toplama?
selamlar
sql tablomda şöyle bir sorunum var
tablo hesap
id........ kim.......... aidat............ aodeme.........*a.kalan........... yakit.......... yodeme...............*y.kalan.............. ay............. yil............ not
2 5 15,00 5,00 10.00 100.00 50.00 50.00 ocak 2009
3 5 15,00 5,00 10.00 100.00 50.00 50.00 şubat 2009
4 5 15,00 5,00 10.00 100.00 50.00 50.00 mart 2009
arkadaşlar buşekilde giden bir tablom var yıldızlı olanlar sqlde yok hesaplama için geçici oluşturuldu öyle bir kodlama yapacağımki mesala 5 kimlikli zaatın o güne kadar
borçlarından ödedikleri çıkacak kalan sutunlarına(a.kalan/y.kalan) yansıyacak ama nasıl yapacağım hakkında kafam durdu.....
mesajı değiştirdim çünkü her şahıs her ay için bir ödeme yapacak
sql tablomda şöyle bir sorunum var
tablo hesap
id........ kim.......... aidat............ aodeme.........*a.kalan........... yakit.......... yodeme...............*y.kalan.............. ay............. yil............ not
2 5 15,00 5,00 10.00 100.00 50.00 50.00 ocak 2009
3 5 15,00 5,00 10.00 100.00 50.00 50.00 şubat 2009
4 5 15,00 5,00 10.00 100.00 50.00 50.00 mart 2009
arkadaşlar buşekilde giden bir tablom var yıldızlı olanlar sqlde yok hesaplama için geçici oluşturuldu öyle bir kodlama yapacağımki mesala 5 kimlikli zaatın o güne kadar
borçlarından ödedikleri çıkacak kalan sutunlarına(a.kalan/y.kalan) yansıyacak ama nasıl yapacağım hakkında kafam durdu.....
mesajı değiştirdim çünkü her şahıs her ay için bir ödeme yapacak
En son pelitt tarafından 29 May 2009 12:34 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: id nosu küçük olan kayıtlarda kalan toplama?
araştırdım
SELECT SUM(kalan) FROM TABLO_ADI where kim=x şekinde bir kod çalışırmı
SELECT SUM(kalan) FROM TABLO_ADI where kim=x şekinde bir kod çalışırmı
Re: id nosu küçük olan kayıtlarda kalan toplama?
Amaçtan yola çıkarar şöyle bişey işimi görecek heralda önceki kayıtlardaki kalanı toplayıp o satırdaki kalanla toplayıp o satıra yazsın aşşağıdaki gibi
örnek
tablo hesap
id........ kim.......... aidat............ aodeme.........*a.kalan........... yakit.......... yodeme...............*y.kalan.............. ay............. yil............ not
2 5 15,00 5,00 10.00 100.00 50.00 50.00 ocak 2009
3 5 15,00 5,00 10.00 100.00 50.00 50.00 şubat 2009
4 5 15,00 5,00 30.00 100.00 50.00 150.00 mart 2009
örnek
tablo hesap
id........ kim.......... aidat............ aodeme.........*a.kalan........... yakit.......... yodeme...............*y.kalan.............. ay............. yil............ not
2 5 15,00 5,00 10.00 100.00 50.00 50.00 ocak 2009
3 5 15,00 5,00 10.00 100.00 50.00 50.00 şubat 2009
4 5 15,00 5,00 30.00 100.00 50.00 150.00 mart 2009
Re: id nosu küçük olan kayıtlarda kalan toplama?
Group by kullanman lazım. Fakat bu şekilde detay gösteremezsiniz.
Bir kelimenin anlamını öğretsen bile yeter..



Re: id nosu küçük olan kayıtlarda kalan toplama?
ya bu delphi bulmaca çözmek gibi bişey bu işi kayıt girerken yapayım diyeceğim ancak ozamanda önceki tarihte bir hata olsa örn. değer değişse sonraki toplamlar bunu algılamaz
bunu değişken olarak nasıl yazıyoruz unit1 altında tanımladım yanlız hata verdi dikkat edeceğim nokta ne
bunu tanımladıktan sonra hesaplamayı burada kurgulasam bütün dbgridlerim aynı zaten zquery1 nesnesi ile çalışıyor çok kolaylık olacak
kodu tamamiyle yazmasanızda bana bu aralığa yazabileceğim basit örnekler verirseniz(örnek kim i 4 olan kalanlar toplamı (gerçi bu mantıksız oldu sonucun yazılacağı yerde kim 4 olduğı için sürekli döngüde kalır ) gibi aklınıza gelen birşeyler) ben o yoldan çıkıp birşeyler elde edebilirim sanırım
Kod: Tümünü seç
procedure TForm2.ZQuery1CalcFields(DataSet: TDataSet);
begin
ZQuery1aidatk.AsCurrency:=ZQuery1AIDAT.AsCurrency-ZQuery1AODEME.AsCurrency;
ZQuery1yakitk.AsCurrency:=ZQuery1YAKIT.AsCurrency-ZQuery1YODEME.AsCurrency;
end;
bunu tanımladıktan sonra hesaplamayı burada kurgulasam bütün dbgridlerim aynı zaten zquery1 nesnesi ile çalışıyor çok kolaylık olacak
kodu tamamiyle yazmasanızda bana bu aralığa yazabileceğim basit örnekler verirseniz(örnek kim i 4 olan kalanlar toplamı (gerçi bu mantıksız oldu sonucun yazılacağı yerde kim 4 olduğı için sürekli döngüde kalır ) gibi aklınıza gelen birşeyler) ben o yoldan çıkıp birşeyler elde edebilirim sanırım
Re: id nosu küçük olan kayıtlarda kalan toplama?
Bunlar için Vt de trigger kullanılır.örn. değer değişse sonraki toplamlar bunu algılamaz
5 nolu kim için toplamları bu şekilde al zaten Query kullanıyorsan Calc field da kullanma bunu Query de hesaplattırıp göster.
Kod: Tümünü seç
select kim, sum(aidat),
sum(aodeme),
sum(aidat-aodeme) AS AidatKalan,// calc field olarak yaptığın hesaplama
sum(yakit),
sum(yodeme),
sum(yakit-yodeme) As Yakıtkalan // calc field olarak yaptığın hesaplama
from tablo where kim=5 group by kim
Bir kelimenin anlamını öğretsen bile yeter..



Re: id nosu küçük olan kayıtlarda kalan toplama?
Cevap için çok teşekkür ettim kodda biraz değişiklik yaptım aşşağıda açıkladım yanlışım varsa düzeltin
select kim,
sum(aidat),//aidat sutunu toplam
sum(aodeme), //aödeme sutunu toplam
sum(aidat-aodeme) AS AidatKalan,// sutun toplamları birbirinden çıkarıldı aidatkalan sutununa değerleri yazıldı
bu kodu böyle kullanırsam görüntü şu şekilmi olacak
id....aidat.....aodeme.........akalan
1.....100.........50..............120
2.....70..........30..............120
3......80..........50..............120
dikkat ettiyseniz geçmiş kayıtlardada kalan 120 olarak gözükecek bu sorunu şöyle çözersem her satır kendi kim nosuna sahip ve
id si kendinden küçük satırlarla işleme tabi tutulursa çok şahane olacak aşşağıdaki şekli alacak ve zaten her çalışmada değerler yeniden hesaplanacağı için kayıt silme değiştirme durumu otomatik yansıyacak mesajı değiştire değiştire bir hal oldum ancak düşünebiliyoz selamlar
id....aidat.....aodeme.........akalan
1.....100.........50..............50
2.....70..........30..............90
3......80..........50..............120
4......80.........120..............0
sum(yakit),
sum(yodeme),
sum(yakit-yodeme) As Yakıtkalan // calc field olarak yaptığın hesaplama
from tablo where kim=(işleme giren satırın kim no sunu buraya nasıl aktarırım yani her satır için değişecek? ) group by kim and id=(işleme giren satır id sinden küçük id li olanlar yapmak için ne yazmalıyım her satır için değişecek?group by id')
En son pelitt tarafından 29 May 2009 04:25 tarihinde düzenlendi, toplamda 4 kere düzenlendi.
Re: id nosu küçük olan kayıtlarda kalan toplama?
trigger a baktım çok zora benziyor
yukardaki soruyu çözersek heralda delphide çığırmığır açarız bizim bile kafamız karıştı delphi neyitsin
yukardaki soruyu çözersek heralda delphide çığırmığır açarız bizim bile kafamız karıştı delphi neyitsin

Re: id nosu küçük olan kayıtlarda kalan toplama?
sizin yapmak istediğiniz son görüntü değil anlaşılan yürüye bakiye istiyorsunuz doğrumudur?
burada konuştuk
viewtopic.php?f=18&t=25145
burada konuştuk
viewtopic.php?f=18&t=25145
Bir kelimenin anlamını öğretsen bile yeter..



Re: id nosu küçük olan kayıtlarda kalan toplama?
Trigger dedim çünkü değişiklik falan otomatik olsun dediniz.pelitt yazdı:trigger a baktım çok zora benziyor
yukardaki soruyu çözersek heralda delphide çığırmığır açarız bizim bile kafamız karıştı delphi neyitsin
Fakat dediğiniz için Stored Prosedur ler kullanılır.
Bir kelimenin anlamını öğretsen bile yeter..



Re: id nosu küçük olan kayıtlarda kalan toplama?
ikinci tablo şeklinde olması ve içinden değişiklik yaptığımda değişikliklere göre yenilenmesi önemliconari yazdı:sizin yapmak istediğiniz son görüntü değil anlaşılan yürüye bakiye istiyorsunuz doğrumudur?
burada konuştuk
viewtopic.php?f=18&t=25145
dediğiniz yerde firebird 2.1 vs. denmiş ben bu işlemi dbgridde gerçekleştirmek istiyorum birde
procedure TForm2.ZQuery1CalcFields(DataSet: TDataSet);
begin
ZQuery1aidatk.AsCurrency:=ZQuery1AIDAT.AsCurrency-ZQuery1AODEME.AsCurrency;
ZQuery1yakitk.AsCurrency:=ZQuery1YAKIT.AsCurrency-ZQuery1YODEME.AsCurrency;
end;
böyle bir kod çok işlek oluyor mesala ödemeyi değiştir kalan hemencecik kendi değişiyor ondan dolayı yazacağım kodda buraya uygun olsunki
yaptığım değişiklik hemen dbgride yansısın onu istiyom kardeş yardımların için teşekkür ettim sağol
kırmızılı yazdığım yerlere acaba nasıl bir kod gireceğim orayı halledersek heralda sorun kalmıyacak
Re: id nosu küçük olan kayıtlarda kalan toplama?
selamlar arkadaşlar bu sorunu hala çözemedim yardım edecek yokmu
Re: id nosu küçük olan kayıtlarda kalan toplama?
Kod: Tümünü seç
select O.OrderId,
convert(char(10),O.OrderDate,101) as 'Order Date',
O.OrderAmt,
(select sum(OrderAmt) from Orders
where OrderID <= O.OrderID and
convert(char(10),OrderDate,101)
= convert(char(10),O.OrderDate,101))
'Running Total'
from Orders O
order by OrderID