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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.'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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.İ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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.@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
  Fdmemtable kullanimi arsl01 8 474 11-09-2019, Saat: 01:32
Son Yorum: Aktolgali
  Thread içerisinde sleep kullanımı berk06 1 178 26-08-2019, Saat: 11:36
Son Yorum: Tuğrul HELVACI
  TNotification Kullanımı hk yhackup 4 249 07-08-2019, Saat: 18:51
Son Yorum: Bay_Y
  IDE çoklu monitör kullanımı hakkında adelphiforumz 2 233 10-07-2019, Saat: 12:45
Son Yorum: adelphiforumz
  read ve write kullanımı hakkında alisahin 3 377 21-05-2019, Saat: 14:57
Son Yorum: alisahin



Konuyu Okuyanlar: 1 Ziyaretçi