Bu açıklamayı yapmamın sebebi sql sorgulardan anlamadığımı belirtmek içindi.
Problemime gelince.
Eczane kesinti adlı bir program yazdım programda firmadb.db personeldb.db ve her ay için ayrı bir dosya var 1.db , 2.db .... 12.db adlı hareket dosyaları.
firmadb.db dosyasının içeriği
Kodu*
Firma*
Vergidairesi
Verginumarasi
Bankaadi
Bankano
personeldb.db dosyasının içeriği
kodu *
adi *
kesintidb.db dosyasının içeriği
Kodu*
Tarih*
Perkod*
Firmakod*
Tutar
* olanlar indexli alanlar
Kesintidb firmadb nin ve personeldb nin detail database i,
hangisinde işlem yapılıyorsa onun detaili olarak db grid e listeletiyorum.
rapor aldığımda şu şekilde yapıyorum. Raporun konusu her bir personelin her bir eczaneden kaç ytl lik fiş aldığını bulmam gerekiyor.
Ben bunu iç içe while .. do döngsüyle yapıyorum ve 400 personel de nerdeyse bir gün sürüyor

Kod: Tümünü seç
raporpertb.First;
while not raporpertb.EOF do begin
.
.
raporfirmatb.First;
while not raporfirmatb.EOF do begin
.
.
tutari:=0;
raporkesintitb.First;
while not raporkesintitb.EOF do begin
if (raporkesintitbperkod.Text=perkodus) and (raporkesintitbfirmakod.Text=firmakodus) then begin
tutari := tutari+ raporkesintitbtutar.Value;
end;
raporkesintitb.Next;
end;
end;
end;

Bunu query1 ile en kısa yoldan nasıl yapabilirim.
En içteki döngü query1 ile yapılabilir (nasıl yapıldığını bilmiyorum ama

bu bile işimi görür gibime geliyor en azından yarım güne indiririm

bu işlemlerin tamamını bir query1 ile çözmenin bir yolu varmı arkadaşlar.
Database den anlamayan bu arkadaşınıza bir yardım lütfen.
İyi çalışmalar.