delphi access 2 tablodan veri çekmek çoklu sonuç döndüren iç içe sorgular

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
bilprosoft
Üye
Mesajlar: 3
Kayıt: 23 Mar 2016 02:17

delphi access 2 tablodan veri çekmek çoklu sonuç döndüren iç içe sorgular

Mesaj gönderen bilprosoft »

Herkese hayırlı günler.

Doğrusu yazdığım başlık yapmak istediğim işleme uyuyormu bilmiyorum ama yaptığım araştırmalardan edinebildiğim bilgilere göre yazdım.
Yapmak istediğim personel maaş tablosunda işlem türüne göre ayrılan BORÇ ALACAK bilgilerini işlem türü bilgisine göre ayrı ayrı başlıklar altında toplamak

Örn.
işlem türü = 1 BORCTOPLAM1 ALACAKTOPLAM1
işlem türü = 2 BORCTOPLAM2 ALACAKTOPLAM2
işlem türü = 3 BORCTOPLAM3 ALACAKTOPLAM3
işlem türü = 4 BORCTOPLAM4 ALACAKTOPLAM4
işlem türü = 5 BORCTOPLAM5 ALACAKTOPLAM5
işlem türü = 6 BORCTOPLAM6 ALACAKTOPLAM6

Kod: Tümünü seç

  qMaasDetay.Close;
  qMaasDetay.SQL.Clear;
  qMaasDetay.SQL.Add('SELECT PERKART.TCNo, PERKART.Adi, PERKART.Soyadi, ');
  qMaasDetay.SQL.Add('(SELECT Sum(PERMAAS.Alacak) AS AlcMS, Sum(PERMAAS.Borc) AS BrcMS, ');
  qMaasDetay.SQL.Add('IIF(ISNULL(Sum(PERMAAS.Alacak)),0,Sum(PERMAAS.Alacak))-IIF(ISNULL(Sum(PERMAAS.Borc)),0,Sum(PERMAAS.Borc)) AS BkyMS, ');
  qMaasDetay.SQL.Add('IIF(BkyMS>0,''A'',''B'') AS DrmMS ');
  qMaasDetay.SQL.Add('FROM PERKART INNER JOIN PERMAAS ON PERKART.id=PERMAAS.Perid ');
  qMaasDetay.SQL.Add('WHERE Harid=0) ');
  qMaasDetay.SQL.Add('(SELECT Sum(PERMAAS.Alacak) AS AlcPR, Sum(PERMAAS.Borc) AS BrcPR, ');
  qMaasDetay.SQL.Add('IIF(ISNULL(Sum(PERMAAS.Alacak)),0,Sum(PERMAAS.Alacak))-IIF(ISNULL(Sum(PERMAAS.Borc)),0,Sum(PERMAAS.Borc)) AS BkyPR, ');
  qMaasDetay.SQL.Add('IIF(BkyPR>0,''A'',''B'') AS DrmPR ');
  qMaasDetay.SQL.Add('FROM PERKART INNER JOIN PERMAAS ON PERKART.id=PERMAAS.Perid ');
  qMaasDetay.SQL.Add('WHERE Harid=1) ');
  qMaasDetay.SQL.Add('(SELECT Sum(PERMAAS.Alacak) AS AlcYL, Sum(PERMAAS.Borc) AS BrcYL, ');
  qMaasDetay.SQL.Add('IIF(ISNULL(Sum(PERMAAS.Alacak)),0,Sum(PERMAAS.Alacak))-IIF(ISNULL(Sum(PERMAAS.Borc)),0,Sum(PERMAAS.Borc)) AS BkyYL, ');
  qMaasDetay.SQL.Add('IIF(BkyYL>0,''A'',''B'') AS DrmYL ');
  qMaasDetay.SQL.Add('FROM PERKART INNER JOIN PERMAAS ON PERKART.id=PERMAAS.Perid ');
  qMaasDetay.SQL.Add('WHERE Harid=2) ');
  qMaasDetay.SQL.Add('(SELECT Sum(PERMAAS.Alacak) AS AlcYM, Sum(PERMAAS.Borc) AS BrcYM, ');
  qMaasDetay.SQL.Add('IIF(ISNULL(Sum(PERMAAS.Alacak)),0,Sum(PERMAAS.Alacak))-IIF(ISNULL(Sum(PERMAAS.Borc)),0,Sum(PERMAAS.Borc)) AS BkyYM, ');
  qMaasDetay.SQL.Add('IIF(BkyYM>0,''A'',''B'') AS DrmYM ');
  qMaasDetay.SQL.Add('FROM PERKART INNER JOIN PERMAAS ON PERKART.id=PERMAAS.Perid ');
  qMaasDetay.SQL.Add('WHERE Harid=3) ');
  qMaasDetay.SQL.Add('(SELECT Sum(PERMAAS.Alacak) AS AlcME, Sum(PERMAAS.Borc) AS BrcME, ');
  qMaasDetay.SQL.Add('IIF(ISNULL(Sum(PERMAAS.Alacak)),0,Sum(PERMAAS.Alacak))-IIF(ISNULL(Sum(PERMAAS.Borc)),0,Sum(PERMAAS.Borc)) AS BkyME, ');
  qMaasDetay.SQL.Add('IIF(BkyME>0,''A'',''B'') AS DrmME ');
  qMaasDetay.SQL.Add('FROM PERKART INNER JOIN PERMAAS ON PERKART.id=PERMAAS.Perid ');
  qMaasDetay.SQL.Add('WHERE Harid=4) ');
  qMaasDetay.SQL.Add('(SELECT Sum(PERMAAS.Alacak) AS AlcOD, Sum(PERMAAS.Borc) AS BrcOD, ');
  qMaasDetay.SQL.Add('IIF(ISNULL(Sum(PERMAAS.Alacak)),0,Sum(PERMAAS.Alacak))-IIF(ISNULL(Sum(PERMAAS.Borc)),0,Sum(PERMAAS.Borc)) AS BkyOD, ');
  qMaasDetay.SQL.Add('IIF(BkyOD>0,''A'',''B'') AS DrmOD ');
  qMaasDetay.SQL.Add('FROM PERKART INNER JOIN PERMAAS ON PERKART.id=PERMAAS.Perid ');
  qMaasDetay.SQL.Add('WHERE Harid=5) ');
  qMaasDetay.SQL.Add('(SELECT Sum(PERMAAS.Alacak) AS AlcTP, Sum(PERMAAS.Borc) AS BrcTP, ');
  qMaasDetay.SQL.Add('IIF(ISNULL(Sum(PERMAAS.Alacak)),0,Sum(PERMAAS.Alacak))-IIF(ISNULL(Sum(PERMAAS.Borc)),0,Sum(PERMAAS.Borc)) AS BkyTP, ');
  qMaasDetay.SQL.Add('IIF(BkyTP>0,''A'',''B'') AS DrmTP ');
  qMaasDetay.SQL.Add('FROM PERKART INNER JOIN PERMAAS ON PERKART.id=PERMAAS.Perid ');
  //qMaasDetay.SQL.Add('WHERE Harid=0) ');
  //qMaasDetay.SQL.Add('FROM PERKART INNER JOIN PERMAAS ON PERKART.id=PERMAAS.Perid ');
  //qMaasDetay.SQL.Add(FILTRE+MAASAY_TEXT+UNVAN_TEXT+BIRIM_TEXT+BOLGE_TEXT+POZIS_TEXT);
  qMaasDetay.SQL.Add('GROUP BY PERKART.TCNo, PERKART.Adi, PERKART.Soyadi');
  //qMaasDetay.SQL.Add(INDSECIM+INDBIRIM+INDBOLGE+INDPOZIS+INDUNVAN+INDTC+INDAD+INDSOY);
  Showmessage(qMaasDetay.SQL.Text);
  qMaasDetay.Open;
Cevapla