Konuyu Oyla:
  • Derecelendirme: 2/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
SQL Kullanımı
#1
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?
Cevapla
#2
'LEFT OUTER JOIN TBLCASABIT MC ON MC.VERGI_NUMARASI=TBLCASABIT.VERGI_NUMARASI AND ' + Edit3.Text+ ' = ' + '''MERKEZ''' +
şeklinde denermisiniz
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#3
(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'''  +
şeklinde denermisiniz
Cevapla
#4
İ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')  +
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#5
(20-07-2019, Saat: 15:53)cinarbil Adlı Kullanıcıdan Alıntı: İ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')  +

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
Cevapla
#6
@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;

Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#7
@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
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#8
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;
Cevapla
#9
@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
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#10
(26-07-2019, Saat: 11:47)adelphiforumz Adlı Kullanıcıdan Alıntı: @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

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);
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Unigui iframe kullanımı delphiX14 4 1.526 21-12-2023, Saat: 12:14
Son Yorum: delphiX14
  Peekb, Poke, Peek vb. komutlarının delphi kullanımı? kofmaster 4 2.902 26-08-2023, Saat: 10:37
Son Yorum: veteran
Question FastReport Masterdetail Kullanımı riverred 7 1.106 17-05-2023, Saat: 14:02
Son Yorum: hi_selamlar
  Delphi 11.3 FastReport kullanımı Frrst 0 577 16-04-2023, Saat: 01:00
Son Yorum: Frrst
Photo fastreport IIF function null kullanımı themerdogan 8 1.878 05-01-2023, Saat: 18:18
Son Yorum: themerdogan



Konuyu Okuyanlar: 1 Ziyaretçi