Table Alan Toplamı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Table Alan Toplamı

Mesaj gönderen loxka »

S.A
Table1 de bulunan "Tutar" alanındaki değerlerin tümünün toplamını alarak, Table2 de bulunan "Toplam" alanına yazdırmak istiyorum.

"Konuya ilgili 2 gündür site içinde arama yaparak hemen hemen her dökümanı okudum genelde cevaplar Query kullanımı ile ilgili, Query kullanmak istemiyorum.-çünki bir bir süre sonra herşey birbirine giriyormuş gibi geliyo :) -"

Yukarıdaki sorumu değerlendirirseniz memnun olurum.
Teşekkür ederim
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

query kullanmak istemiyorsan bi tane for dongusu ku o zaman

Kod: Tümünü seç

toplam:=0;
table1.first;

for a:=1 to table1.recordcount do
topla := toplam + table1alanin



table2alanin:=toplam
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

slm


loxka dedi

Kod: Tümünü seç


"Konuya ilgili 2 gündür site içinde arama yaparak hemen hemen her dökümanı okudum genelde cevaplar Query kullanımı ile ilgili, Query kullanmak istemiyorum.-çünki bir bir süre sonra herşey birbirine giriyormuş gibi geliyo  -" 

yanlış düşüünyorsun Query kullanarak ben toplamların karıştığını görmedim belki sistematik bir şekilde kullanamıyorsunda ondan olabilir.

Neyse
Bir tane
query nesnesi koy frma
ve
database in ayarla
ve
sqline

Kod: Tümünü seç

select sum(tutar)from tablo adın
   
        

  
yaz
ve activeyi true yap sonra
fields editorden sumu aktar queryye
sonra
table2 deki tutara
aktarcan demi

Kod: Tümünü seç

table2.edit;
table2tutar.asfloat:=query1sum.asfloat;
table2.post;
query1.close;
query1.open;
[code]
 bu şekilde ne sorun çıkartacakki istersen bu şekildede deneyebilirsin.Kolay gelsin.
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

Selman Hocam Teşekkür ederim, Zorluğu SQL bana karışık geliyor belki biraz tembellik te var işte..

Hocam verdiğiniz kod çalıştı lakin bir meramım daha var, bunu ben bir buton aktardım, table 1de kayıt yaparken otomatik olatak hesaplaması için yani buton olmadan yaptırabilirmiyim.
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

table 1 e kayıt yaparken otomatik olarak
hesaplatma olayı zaten query ile tabloda otomatik hesaplar olayı istersen birde datasource nesnesi ekle
ve bunu query ye bağla
ve daha sonra
bir tane dbedit
ekle foruma
toplamlar
diye
ve o dbediti queryni bağladığın datasourcen ile ilişkilendir

Ve toplama işlemleri yaptırdığın bölge veya bölgeler neresi ise oralara
query1.close;
query1.open şeklinde yaparsan anında otomatik olarak hesaplamaları görebilirsin.Kolay gelsin.ç
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

Anladım.
Teşekkür ederim.
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

Başka bir soru sormak istiyorum.
master detail olayında nasıl toplam alacağız, mantığı nedir?
master tablodaki kayıtlar değiştikçe detailde toplam alması gerekiyorsa ne olacak ?
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam
o zaman sql cümleciğine

Kod: Tümünü seç

select sum(toplam) from detaytablon adin
where detay.kod=:master.kod
ve bu queryni de datasourcesinide detay tablonun bağlı olduğu datasourceyi ata
birde master detay bağlantısını kod a göre yaptığını varsaydım.
hepsi bu kadar Kolay gelsin
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

Hocam; Karıştım.....

Şimdi Master Table1, Detail Table2

Detail olan Tablo2 yi Properties'ten MasterFields yaparak "Detay"(Table2 alanı) nı nı Table1 in "Master" (Table1 Alanı) alanına bağladım, sorun yok. Master Detail çalışıyor. OK.


Verdiğiniz örnekte "where detay.kod=:master.kod " derken neyi kastettiğinizi anlamadım, işin doğrusu.
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam
işte master fields de hangi alanlar eşleşmişse
where de sonra gelen yerede
master-detay ilişkilendirdiğin alanları yazıcan o kadar
loxka
Üye
Mesajlar: 214
Kayıt: 18 Ağu 2003 01:10

Mesaj gönderen loxka »

select sum (Tutar) from Malzeme.db
Where Malzeme.Table1N=:HastaKarti.Sira

İnvalid File Name hatası alıyorum
Kullanıcı avatarı
ALUCARD
Üye
Mesajlar: 1270
Kayıt: 27 Eyl 2003 10:12
Konum: Samsun
İletişim:

Mesaj gönderen ALUCARD »

loxka yazdı:select sum (Tutar) from Malzeme.db
Where Malzeme.Table1N=:HastaKarti.Sira

İnvalid File Name hatası alıyorum
lütfen kodları (code) aralığına yazalım

Kod: Tümünü seç

select sum (Tutar) from Malzeme.db
Where Malzeme.Table1N=:Sira
eğer tabloları doğru bağladıysan bu çalışır.
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz

Erkan ÇAĞLAR
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

selam

Kod: Tümünü seç

select sum (Tutar) from Malzeme.db 
Where Sira=: Malzeme.Table1N


denermisin kolay gelsin
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

merhaba,

viewtopic.php?t=9830&highlight=master+detail

bu makalede master-detail iyi bir şekilde anlatılmış. kendi yaptığın master detail bağlantıların ile karşılaştırıp kontrol edebilirsin

kolay gelsin
Şefkat-u Merhamette Güneş Gibi Ol.
Başkalarının Kusurunu Örtmekte Gece Gibi Ol.
Sehavet-u Cömertlikte Akarsu Gibi Ol.
Hiddet-u Asabiyette Ölü Gibi Ol.
Tevazu-u Mahviyette Toprak Gibi Ol.
Ya Olduğun Gibi Görün Ya Göründüğün Gibi Ol.

Resim
Kullanıcı avatarı
pasa_yasar
Üye
Mesajlar: 570
Kayıt: 07 Haz 2004 12:35

Mesaj gönderen pasa_yasar »

while not Table1.Eof do
begin
x:=x+table1alan;
table1.next;
end;
table2alan:=x;

sadece table kullanmış olursun ama yüksek kayıtlarda zaman problemi çıkabilir tavsiyem SQL
Cevapla