SQL Kullanımı - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: SQL Kullanımı (/showthread.php?tid=3818) Sayfalar:
1
2
|
SQL Kullanımı - OZCANK - 20-07-2019 Merhaba; Delphi7 içerisinde SQL kod kullanıyorum ve birkaç alanım var ve bunları ComboBox2 de items içerisine yazıyorum. RAPOR_KODU5 ACIK1 ACIK2 ACIK3 şeklinde. Kullanıcı RAPOR_KODU5 seçtiği zaman; 'LEFT OUTER JOIN TBLCASABIT MC ON MC.VERGI_NUMARASI=TBLCASABIT.VERGI_NUMARASI AND '+#39+Edit3.Text+#39+'=''MERKEZ'' ' + MERKEZ e eşitlemek istiyorum. ComboBox2 nin OnClick olayına da; Edit3.Text:='TBLCASABIT.'+ComboBox2.Text;Edit3.Text de başına Tabloyu eklemek için böyle bir yöntem buldum. Sorunum şu , 'TBLCASABIT.RAPOR_KODU5'='MERKEZ' Tırnak içerisinde yazdığı için eşitleme yapmıyor. Karışık oldu biliyorum ama Yardımcı olabilir misiniz? Başka bir yöntem le bu işi halledebilir miyim? SQL Kullanımı - adelphiforumz - 20-07-2019 'LEFT OUTER JOIN TBLCASABIT MC ON MC.VERGI_NUMARASI=TBLCASABIT.VERGI_NUMARASI AND ' + Edit3.Text+ ' = ' + '''MERKEZ''' + şeklinde denermisiniz Cvp: SQL Kullanımı - OZCANK - 20-07-2019 (20-07-2019, Saat: 13:16)adelphiforumz Kardeşim çok teşekkür ederim oldu. Adlı Kullanıcıdan Alıntı: 'LEFT OUTER JOIN TBLCASABIT MC ON MC.VERGI_NUMARASI=TBLCASABIT.VERGI_NUMARASI AND ' + Edit3.Text+ ' = ' + '''MERKEZ''' + Cvp: SQL Kullanımı - cinarbil - 20-07-2019 İyi günler. sadece bilgi amaçlı Delphi de bu amaçla QuotedStr() komutu var. 'LEFT OUTER JOIN TBLCASABIT MC ON MC.VERGI_NUMARASI=TBLCASABIT.VERGI_NUMARASI AND ' + Edit3.Text+ ' = ' + QuotedStr('MERKEZ') + Cvp: SQL Kullanımı - OZCANK - 26-07-2019 (20-07-2019, Saat: 15:53)cinarbil Adlı Kullanıcıdan Alıntı: İyi günler. Merhaba ; SQL Cümlesin de "TCKIMLIKNO" veya "VERGI_NUMARASI" hangisi dolu ise ona göre rapor etmeli ama "VERGI_NUMARASI" filitre ediyor ,"TCKIMLIKNO" filitre etmiyor bütün tc kimlikleri döküyor nerde yanlışlık yaptım acaba rica etsem bir kontrol edebilir misiniz? SELECT TBLCASABIT.CARI_ISIM, month(tarih) AS 'AY', Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) AS 'KDV_HARIC_TUTAR', Count(TBLFATUIRS.FATIRS_NO) AS 'FATURA_SAYISI',TBLCASABIT.VERGI_DAIRESI, TBLCASABIT.VERGI_NUMARASI,TBLCASABITEK.TCKIMLIKNO FROM TBLFATUIRS INNER JOIN TBLCASABIT ON TBLCASABIT.CARI_KOD=TBLFATUIRS.CARI_KODU INNER JOIN TBLCASABITEK ON (TBLCASABIT.CARI_KOD=TBLCASABITEK.CARI_KOD) AND (TBLFATUIRS.CARI_KODU=TBLCASABITEK.CARI_KOD) WHERE (TBLFATUIRS.FTIRSIP='1') AND (TBLCASABITEK.TCKIMLIKNO='11111111111') OR (TBLCASABIT.VERGI_NUMARASI='') GROUP BY TBLCASABIT.CARI_ISIM ,month(tarih),TBLCASABIT.VERGI_DAIRESI,TBLCASABIT.VERGI_NUMARASI,TBLCASABITEK.TCKIMLIKNO HAVING Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T)>=$1 AND month(tarih)='1' ORDER BY month(tarih) ASC Cvp: SQL Kullanımı - adelphiforumz - 26-07-2019 @OZCANK Parametreli kullanımı (Eğer parametrede değer gönderirsen gönderdiğin değerler gelir göndermezsen hepsi Select TBLCASABIT.CARI_ISIM, Month(tarih) As 'AY', Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) As 'KDV_HARIC_TUTAR', Count(TBLFATUIRS.FATIRS_NO) As 'FATURA_SAYISI', TBLCASABIT.VERGI_DAIRESI, TBLCASABIT.VERGI_NUMARASI, TBLCASABITEK.TCKIMLIKNO From TBLFATUIRS Inner Join TBLCASABIT On TBLCASABIT.CARI_KOD = TBLFATUIRS.CARI_KODU Inner Join TBLCASABITEK On (TBLCASABIT.CARI_KOD = TBLCASABITEK.CARI_KOD) And (TBLFATUIRS.CARI_KODU = TBLCASABITEK.CARI_KOD) Where (TBLFATUIRS.FTIRSIP = '1') And (TBLCASABITEK.TCKIMLIKNO = @TCNo Or @TCNo = '') And (TBLCASABIT.VERGI_NUMARASI = @VDNo Or @VDNo = '') Group By TBLCASABIT.CARI_ISIM, Month(tarih), TBLCASABIT.VERGI_DAIRESI, TBLCASABIT.VERGI_NUMARASI, TBLCASABITEK.TCKIMLIKNO Having Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) >= $1 And Month(tarih) = '1' Order By Month(tarih) Asc; Parametresiz kullanımıda TC No yada VD No alanlarından dolu olanlar gelir Select TBLCASABIT.CARI_ISIM, Month(tarih) As 'AY', Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) As 'KDV_HARIC_TUTAR', Count(TBLFATUIRS.FATIRS_NO) As 'FATURA_SAYISI', TBLCASABIT.VERGI_DAIRESI, TBLCASABIT.VERGI_NUMARASI, TBLCASABITEK.TCKIMLIKNO From TBLFATUIRS Inner Join TBLCASABIT On TBLCASABIT.CARI_KOD = TBLFATUIRS.CARI_KODU Inner Join TBLCASABITEK On (TBLCASABIT.CARI_KOD = TBLCASABITEK.CARI_KOD) And (TBLFATUIRS.CARI_KODU = TBLCASABITEK.CARI_KOD) Where (TBLFATUIRS.FTIRSIP = '1') And ( (TBLCASABITEK.TCKIMLIKNO <> '') Or (TBLCASABIT.VERGI_NUMARASI <> '' ) ) Group By TBLCASABIT.CARI_ISIM, Month(tarih), TBLCASABIT.VERGI_DAIRESI, TBLCASABIT.VERGI_NUMARASI, TBLCASABITEK.TCKIMLIKNO Having Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) >= $1 And Month(tarih) = '1' Order By Month(tarih) Asc; SQL Kullanımı - adelphiforumz - 26-07-2019 @hi_selamlar Merhabalar, SQL Server çok iyi bilmiyorum. Merak ettiğim bir konu var. Kullandığınız SQL kod örneğinde 1 Having ...... ..... .... >= $1 $1 buradaki anlamı nedir? Yani $ simgesi ne işlem görüyor. Detay verebilirmisiniz rica etsem. Benim bildiğim kadarı ile sybase syntax'ından kalma rakamsal değerlerde kullanılır örneğin Select * from XTable From ID >$10 gibi Cvp: SQL Kullanımı - OZCANK - 26-07-2019 Parametresiz de Eşitleme nasıl olacak? TC no dolu v.no boş ise yada tersi durum da . Select TBLCASABIT.CARI_ISIM, Month(tarih) As 'AY', Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) As 'KDV_HARIC_TUTAR',Count(TBLFATUIRS.FATIRS_NO) As 'FATURA_SAYISI', TBLCASABIT.VERGI_DAIRESI, TBLCASABIT.VERGI_NUMARASI, TBLCASABITEK.TCKIMLIKNO From TBLFATUIRS Inner Join TBLCASABIT On TBLCASABIT.CARI_KOD = TBLFATUIRS.CARI_KODU Inner Join TBLCASABITEK On (TBLCASABIT.CARI_KOD = TBLCASABITEK.CARI_KOD) And (TBLFATUIRS.CARI_KODU = TBLCASABITEK.CARI_KOD) Where (TBLFATUIRS.FTIRSIP = '1') And ( (TBLCASABITEK.TCKIMLIKNO <> '') Or (TBLCASABIT.VERGI_NUMARASI <> '' ) ) Group By TBLCASABIT.CARI_ISIM, Month(tarih), TBLCASABIT.VERGI_DAIRESI, TBLCASABIT.VERGI_NUMARASI, TBLCASABITEK.TCKIMLIKNO Having Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) >= $1 And Month(tarih) = '1' Order By Month(tarih) Asc; Cvp: SQL Kullanımı - adelphiforumz - 26-07-2019 @OZCANK Sorduğunuz soruda veya didyorsunuz bir parametre yada eşitlikten bahsedilmiyor " SQL Cümlesin de "TCKIMLIKNO" veya "VERGI_NUMARASI" hangisi dolu ise ona göre rapor etmeli ....." yani bende "TCKIMLIKNO" veya "VERGI_NUMARASI" dolu olanları listeliyorum Yapmak istediğiniz daha açıklayıcı ve net yazarsanız daha fazla yardımcı olmaya çalışırım/çalışırız NOT: Zaten daha net yazmaya çalışırken verdiğim örneğe dikkat ederseniz kendinizde çözümü bulacağınıza inanıyorum Cvp: SQL Kullanımı - OZCANK - 26-07-2019 (26-07-2019, Saat: 11:47)adelphiforumz Adlı Kullanıcıdan Alıntı: @OZCANK Cevaplarınız için teşekkür ederim. Yapmak istediğim şu aslında; Delphi de Faturaları listeliyorum ve bu faturaları listelerken vergi no veya tc no ları kümüle ediyorum. Eğer kümüle edilen faturanın detayını isterse kullanıcı üzerinde sağ clik yapıp detay alıyor yani kümülesiz buda veride ki v.no veya tc no alanlarının hangisi dolu ise ona göre liste alıyor. BaBsRapDetay.SQL.Text:='SELECT CS.CARI_ISIM, month(tarih) AS AY, Sum(TBLFATUIRS.BRUTTUTAR - SAT_ISKT - GEN_ISK1T - GEN_ISK2T - GEN_ISK3T) AS KDV_HARIC_TUTAR, '+ 'Count(TBLFATUIRS.FATIRS_NO) AS FATURA_SAYISI,CS.VERGI_DAIRESI,CS.VERGI_NUMARASI, TBLCASABITEK.TCKIMLIKNO ' + 'FROM TBLFATUIRS ' + 'INNER JOIN TBLCASABIT CS ON CS.CARI_KOD=TBLFATUIRS.CARI_KODU ' + 'INNER JOIN TBLCASABITEK ON CS.CARI_KOD=TBLCASABITEK.CARI_KOD ' + 'WHERE (FTIRSIP=''1'') AND (CS.VERGI_NUMARASI='+#39+''+Edit2.Text+''+#39+') OR (TBLCASABITEK.TCKIMLIKNO='+#39+''+Edit4.Text+''+#39+') ' + 'GROUP BY CS.CARI_ISIM ,CS.CARI_KOD, month(tarih),CS.VERGI_NUMARASI, TBLCASABITEK.TCKIMLIKNO, TBLFATUIRS.FTIRSIP, CS.VERGI_DAIRESI ' + 'HAVING (Sum(TBLFATUIRS.BRUTTUTAR-SAT_ISKT-GEN_ISK1T-GEN_ISK2T-GEN_ISK3T)>=$1) AND MONTH(TARIH)='+#39+''+Edit1.Text+''+#39+' ' + 'ORDER BY month(tarih) ASC'; BaBsRapDetay.Open; ShowMessage(BaBsRapDetay.SQL.Text); |