Delphi SQL Rapor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Delphi SQL Rapor

Mesaj gönderen xxxjedixxx »

Verdiğin tablo örneğindeki kayıtlardan her iki kaydın ayrı kayıtlar olduğununu, tüm kdv ve genel toplam alanlarının toplanacağını varsayarak yazıyorum.

Kod: Tümünü seç

NRapor1.SQL.Text := 'SELECT FATIRS_NO,TARIH,CARI_ISIM,Sum(BRUTTUTAR) as BRUTTUTAR,Sum(SAT_ISKT+GEN_ISK1T+GEN_ISK2T+GEN_ISK3T) AS ISKONTO, ' +
                     'CASE WHEN STHAR_KDV=''1'' THEN Sum((STHAR_NF*STHAR_KDV*STHAR_GCMIK)/100) ELSE 0 END AS KDV_1, ' +
                     'CASE WHEN STHAR_KDV=''8'' THEN Sum((STHAR_NF*STHAR_KDV*STHAR_GCMIK)/100) ELSE 0 END AS KDV_8, ' +
                     'CASE WHEN STHAR_KDV=''18'' THEN Sum((STHAR_NF*STHAR_KDV*STHAR_GCMIK)/100) ELSE 0 END AS KDV_18, ' +
                     'Sum(GENELTOPLAM) as GENELTOPLAM FROM TBLFATUIRS INNER JOIN TBLSTHAR ON (TBLFATUIRS.CARI_KODU = TBLSTHAR.STHAR_ACIKLAMA ' +
                     'AND TBLFATUIRS.FATIRS_NO = TBLSTHAR.FISNO) INNER JOIN TBLCASABIT ON ' +
                     '(TBLCASABIT.CARI_KOD = TBLFATUIRS.CARI_KODU) WHERE FTIRSIP=''1'' AND Tarih between :pTarih1 and :pTarih2 ' +
                     'GROUP BY FATIRS_NO,TARIH,CARI_ISIM';
Gördüğün gibi tüm toplamak istediğin alanların başına Sum() ifadesini ekledim. Deneme şansım olmadığı için basit hatalar olabilir.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Delphi SQL Rapor

Mesaj gönderen ozcank »

tek satır yapamazmıyız? 8 kdv üst satırda 18 KDV alt satırda iki tane gösteriyor;

Kod: Tümünü seç

FATIRS_NO                   TARIH                                    CARI_ISIM   BRUTTUTAR   ISKONTO   KDV_1   KDV_8   KDV_18   GENELTOPLAM   
000000000DENEME   18.05.2014    BURCU MARKET  ( ABDULLAH BALCI )   6,0200   0,1000   0,0000   0,4040   0,0000   6,4800   
000000000DENEME   18.05.2014    BURCU MARKET  ( ABDULLAH BALCI )   6,0200   0,1000   0,0000   0,0000   0,1566   6,4800   
                                                                                           Toplam    12,0400   0,2000   0,0000   0,4040   0,1566    12,9600   
Şu şekilde yapmak istiyorum

Kod: Tümünü seç

FATIRS_NO                  TARIH                                   CARI_ISIM             BRUTTUTAR   ISKONTO   KDV_1   KDV_8   KDV_18   GENELTOPLAM
000000000DENEME   18.05.2014    BURCU MARKET  ( ABDULLAH BALCI )      12,0400      0,2000   0,0000   0,4040   0,1566   12,9600
                                                                                           Toplam      12,0400   0,2000   0,0000   0,4040   0,1566   12,9600
 
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Delphi SQL Rapor

Mesaj gönderen ozcank »

Kardeşim hakkını helal et benimle ilgileniyorsun yardımcı oluyorsun bende bu arada birşeyler öğreniyorum çok sağolasın Allah senden razı olsun
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Delphi SQL Rapor

Mesaj gönderen xxxjedixxx »

Söylediğin sonucun çıkması mümkün değil. Eğer verdiğin veriler canlı veriler isebu sorguya göre tek satır çıkar. Çünkü toplamadığımız alanlara baktığımda her iki satırdaki FATIRS_NO, TARIH ve CARI_ISIM birebir aynı. Bu yüzden daima bu örnek iki satırlık veri için sorgu sonucu tek satır çıkar. Çok satır çıkması için satırlardaki bu üç veriden (irsaliye, tarih, isim) birinin farklı olması gerekir. Bir yanlış var bir yerde ama ne?
Tekrar yazıyorum acaba yanlış kodu mu çalıştırıyorsun?

Kod: Tümünü seç

NRapor1.SQL.Text := 'SELECT FATIRS_NO,TARIH,CARI_ISIM,Sum(BRUTTUTAR) as BRUTTUTAR,Sum(SAT_ISKT+GEN_ISK1T+GEN_ISK2T+GEN_ISK3T) AS ISKONTO, ' +
                     'CASE WHEN STHAR_KDV=''1'' THEN Sum((STHAR_NF*STHAR_KDV*STHAR_GCMIK)/100) ELSE 0 END AS KDV_1, ' +
                     'CASE WHEN STHAR_KDV=''8'' THEN Sum((STHAR_NF*STHAR_KDV*STHAR_GCMIK)/100) ELSE 0 END AS KDV_8, ' +
                     'CASE WHEN STHAR_KDV=''18'' THEN Sum((STHAR_NF*STHAR_KDV*STHAR_GCMIK)/100) ELSE 0 END AS KDV_18, ' +
                     'Sum(GENELTOPLAM) as GENELTOPLAM FROM TBLFATUIRS INNER JOIN TBLSTHAR ON (TBLFATUIRS.CARI_KODU = TBLSTHAR.STHAR_ACIKLAMA ' +
                     'AND TBLFATUIRS.FATIRS_NO = TBLSTHAR.FISNO) INNER JOIN TBLCASABIT ON ' +
                     '(TBLCASABIT.CARI_KOD = TBLFATUIRS.CARI_KODU) WHERE FTIRSIP=''1'' AND Tarih between :pTarih1 and :pTarih2 ' +
                     'GROUP BY FATIRS_NO,TARIH,CARI_ISIM';
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Delphi SQL Rapor

Mesaj gönderen ozcank »

Arkadaşlar Merhaba;
Yapmak istediğim kodu xxxjedixxx nin yardımları ile birlikte bitirdim. Başka arkadaşlarımın ihtiyacı olur diye sonucu buraya yazıyorum tekrar tekrar teşekkür ederim sizlere.

Kod: Tümünü seç

procedure TForm12.BitBtn1Click(Sender: TObject);
begin
NRapor1.Close;
NRapor1.SQL.Clear;
NRapor1.SQL.Text := 'SELECT FATIRS_NO,TARIH,CARI_ISIM,BRUTTUTAR,SAT_ISKT,(GEN_ISK1T+GEN_ISK2T+GEN_ISK3T) AS GENEL_ISK_TOP,' +
                     'Sum(CASE WHEN STHAR_KDV=''1'' THEN (STHAR_NF*STHAR_KDV*STHAR_GCMIK)/100 ELSE 0 END) AS KDV_1, ' +
                     'Sum(CASE WHEN STHAR_KDV=''8'' THEN (STHAR_NF*STHAR_KDV*STHAR_GCMIK)/100 ELSE 0 END) AS KDV_8, ' +
                     'Sum(CASE WHEN STHAR_KDV=''18'' THEN (STHAR_NF*STHAR_KDV*STHAR_GCMIK)/100 ELSE 0 END) AS KDV_18, ' +
                     'GENELTOPLAM FROM TBLFATUIRS INNER JOIN TBLSTHAR ON (TBLFATUIRS.CARI_KODU = TBLSTHAR.STHAR_ACIKLAMA ' +
                     'AND TBLFATUIRS.FATIRS_NO = TBLSTHAR.FISNO) INNER JOIN TBLCASABIT ON ' +
                     '(TBLCASABIT.CARI_KOD = TBLFATUIRS.CARI_KODU) WHERE FTIRSIP=''1'' AND Tarih between :pTarih1 and :pTarih2 '+
                     'GROUP BY FATIRS_NO,TARIH,CARI_ISIM,BRUTTUTAR,SAT_ISKT,GEN_ISK1T,GEN_ISK2T,GEN_ISK3T,GENELTOPLAM';
NRapor1.Parameters.ParamByName('pTarih1').Value := DateTimePicker1.Date;
NRapor1.Parameters.ParamByName('pTarih2').Value := DateTimePicker2.Date;
NRapor1.Open;
end;

En son ozcank tarafından 24 May 2014 09:28 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Delphi SQL Rapor

Mesaj gönderen ozcank »

Özel mesaj okuma iznim yok
En son ozcank tarafından 24 May 2014 09:29 tarihinde düzenlendi, toplamda 2 kere düzenlendi.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Delphi SQL Rapor

Mesaj gönderen ozcank »

Özel mesaj okuma iznim yok
En son ozcank tarafından 24 May 2014 09:29 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
xxxjedixxx
Üye
Mesajlar: 216
Kayıt: 10 Ara 2013 03:50

Re: Delphi SQL Rapor

Mesaj gönderen xxxjedixxx »

Size 2 defa e-posta gönderdim. Sanırım görmediniz.
Cevapla