Delphi Can
SQL Sorgu - 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 Sorgu (/showthread.php?tid=5756)



SQL Sorgu - OZCANK - 26-02-2021

Arkadaşlar Merhaba, Sağlıklı günleriniz olsun. Bir yerde takıldım, sanırım mantık hatası yapıyorum yardımlarınıza ihtiyacım var.

Alış Faturasındaki Miktar , Fiyat ve Satış Faturasındaki İskonto3 alanlarını kullanmak istedim.
TBLSTHAR.STHAR_GCKOD='C' Satış Fatura
TBLSTHAR.STHAR_GCKOD='G' Alış Fatura   
Bu sorgu çalışıyor fakat mükerrer kayıt listeliyor. Sorguya 'C' deki CARI_ISIM eklemek istiyorum.

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, STOK_ADI, SH.STHAR_GCMIK AS MIKTAR, SH.STHAR_NF AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, TBL_C.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) -(SH.STHAR_GCMIK*SH.STHAR_NF*TBL_C.STRA_SATISK3/100) AS IADE_TUT
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU
INNER JOIN TBLSTHAR AS TBL_C ON SH.STOK_KODU=TBL_C.STOK_KODU AND TBL_C.STHAR_GCKOD='C'
INNER JOIN TBLCASABIT ON (TBLCASABIT.CARI_KOD = SH.STHAR_ACIKLAMA)
WHERE SH.STHAR_GCKOD='G' AND SH.STHAR_HTUR='J' AND TBL_C.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'
GO



Cvp: SQL Sorgu - hbulus - 26-02-2021

(26-02-2021, Saat: 07:31)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba, Sağlıklı günleriniz olsun. Bir yerde takıldım, sanırım mantık hatası yapıyorum yardımlarınıza ihtiyacım var.

Alış Faturasındaki Miktar , Fiyat ve Satış Faturasındaki İskonto3 alanlarını kullanmak istedim.
TBLSTHAR.STHAR_GCKOD='C' Satış Fatura
TBLSTHAR.STHAR_GCKOD='G' Alış Fatura   
Bu sorgu çalışıyor fakat mükerrer kayıt listeliyor. Sorguya 'C' deki CARI_ISIM eklemek istiyorum.

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, STOK_ADI, SH.STHAR_GCMIK AS MIKTAR, SH.STHAR_NF AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, TBL_C.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) -(SH.STHAR_GCMIK*SH.STHAR_NF*TBL_C.STRA_SATISK3/100) AS IADE_TUT
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU
INNER JOIN TBLSTHAR AS TBL_C ON SH.STOK_KODU=TBL_C.STOK_KODU AND TBL_C.STHAR_GCKOD='C'
INNER JOIN TBLCASABIT ON (TBLCASABIT.CARI_KOD = SH.STHAR_ACIKLAMA)
WHERE SH.STHAR_GCKOD='G' AND SH.STHAR_HTUR='J' AND TBL_C.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'
GO

Merhaba,
Aşağıdaki şekilde dener misiniz?

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, sb.STOK_ADI, SH.STHAR_GCMIK AS MIKTAR, SH.STHAR_NF AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, SH.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) -(SH.STHAR_GCMIK*SH.STHAR_NF*SH.STRA_SATISK3/100) AS IADE_TUT, C.CARI_ISIM
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU
INNER  JOIN TBLCASABIT as C ON (C.CARI_KOD = SH.STHAR_ACIKLAMA)
WHERE SH.STHAR_GCKOD='G' AND SH.STHAR_HTUR='J' AND SH.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'


Cvp: SQL Sorgu - serdar - 26-02-2021

Merhaba sanırım stokların son durumları hakkında işlem yapmak ıstıyorsunuz
Fakat joınler yanlıs kurgulanmıs. Aşağıdaki satır 1-N eşleşmesi ( bire-çok) yapar ki buda mukerrer satır getırır.

INNER JOIN TBLSTHAR AS TBL_C ON SH.STOK_KODU=TBL_C.STOK_KODU AND TBL_C.STHAR_GCKOD='C'

Tam olarak ne yapmak ıstedıgınız acarsanız yardımcı olabılırız


SQL Sorgu - OZCANK - 26-02-2021

Tabiki detaylandırayım;
TBLSTHAR Tablosunda G Giriş ve C Çıkış olarak kaydediyor. Ben burada Giriş stokların Miktar ve Fiyatlarını aynı zaman da çıkış C lerin İskonto 3 alanını sorguda ki ki gibi hesaplatmak istiyorum. Sonuç olarak Alış faturasındaki stokların Miktar ve fiyatlarının toplamını bulup , Satış Faturasındaki Stokların İskonto 3 oranı kadar indirim yapmak.


Cvp: SQL Sorgu - OZCANK - 26-02-2021

(26-02-2021, Saat: 08:52)Kardeşim teşekkür ederim ama mükerrer kayıt devam ediyor. hbulus Adlı Kullanıcıdan Alıntı:
(26-02-2021, Saat: 07:31)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba, Sağlıklı günleriniz olsun. Bir yerde takıldım, sanırım mantık hatası yapıyorum yardımlarınıza ihtiyacım var.

Alış Faturasındaki Miktar , Fiyat ve Satış Faturasındaki İskonto3 alanlarını kullanmak istedim.
TBLSTHAR.STHAR_GCKOD='C' Satış Fatura
TBLSTHAR.STHAR_GCKOD='G' Alış Fatura   
Bu sorgu çalışıyor fakat mükerrer kayıt listeliyor. Sorguya 'C' deki CARI_ISIM eklemek istiyorum.

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, STOK_ADI, SH.STHAR_GCMIK AS MIKTAR, SH.STHAR_NF AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, TBL_C.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) -(SH.STHAR_GCMIK*SH.STHAR_NF*TBL_C.STRA_SATISK3/100) AS IADE_TUT
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU
INNER JOIN TBLSTHAR AS TBL_C ON SH.STOK_KODU=TBL_C.STOK_KODU AND TBL_C.STHAR_GCKOD='C'
INNER JOIN TBLCASABIT ON (TBLCASABIT.CARI_KOD = SH.STHAR_ACIKLAMA)
WHERE SH.STHAR_GCKOD='G' AND SH.STHAR_HTUR='J' AND TBL_C.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'
GO

Merhaba,
Aşağıdaki şekilde dener misiniz?

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, sb.STOK_ADI, SH.STHAR_GCMIK AS MIKTAR, SH.STHAR_NF AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, SH.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) -(SH.STHAR_GCMIK*SH.STHAR_NF*SH.STRA_SATISK3/100) AS IADE_TUT, C.CARI_ISIM
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU
INNER  JOIN TBLCASABIT as C ON (C.CARI_KOD = SH.STHAR_ACIKLAMA)
WHERE SH.STHAR_GCKOD='G' AND SH.STHAR_HTUR='J' AND SH.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'

(26-02-2021, Saat: 08:52)hbulus Adlı Kullanıcıdan Alıntı:
(26-02-2021, Saat: 07:31)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba, Sağlıklı günleriniz olsun. Bir yerde takıldım, sanırım mantık hatası yapıyorum yardımlarınıza ihtiyacım var.

Alış Faturasındaki Miktar , Fiyat ve Satış Faturasındaki İskonto3 alanlarını kullanmak istedim.
TBLSTHAR.STHAR_GCKOD='C' Satış Fatura
TBLSTHAR.STHAR_GCKOD='G' Alış Fatura   
Bu sorgu çalışıyor fakat mükerrer kayıt listeliyor. Sorguya 'C' deki CARI_ISIM eklemek istiyorum.

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, STOK_ADI, SH.STHAR_GCMIK AS MIKTAR, SH.STHAR_NF AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, TBL_C.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) -(SH.STHAR_GCMIK*SH.STHAR_NF*TBL_C.STRA_SATISK3/100) AS IADE_TUT
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU
INNER JOIN TBLSTHAR AS TBL_C ON SH.STOK_KODU=TBL_C.STOK_KODU AND TBL_C.STHAR_GCKOD='C'
INNER JOIN TBLCASABIT ON (TBLCASABIT.CARI_KOD = SH.STHAR_ACIKLAMA)
WHERE SH.STHAR_GCKOD='G' AND SH.STHAR_HTUR='J' AND TBL_C.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'
GO

Merhaba,
Aşağıdaki şekilde dener misiniz?

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, sb.STOK_ADI, SH.STHAR_GCMIK AS MIKTAR, SH.STHAR_NF AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, SH.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) -(SH.STHAR_GCMIK*SH.STHAR_NF*SH.STRA_SATISK3/100) AS IADE_TUT, C.CARI_ISIM
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU
INNER  JOIN TBLCASABIT as C ON (C.CARI_KOD = SH.STHAR_ACIKLAMA)
WHERE SH.STHAR_GCKOD='G' AND SH.STHAR_HTUR='J' AND SH.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'

Şu şekilde düzenledim istediğim sonucu aldım , sadece burada Giriş G Miktar ve Fiyatını göstermem gerekiyor. Veya sizin sorguya Çıkış Cari İsim ve İskonto 3 oranı düzenleyerek de olur.

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, SB.STOK_ADI, SH.STHAR_GCMIK AS MIKTAR, SH.STHAR_NF AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, SH.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) -(SH.STHAR_GCMIK*SH.STHAR_NF*SH.STRA_SATISK3/100) AS IADE_TUT,C.CARI_ISIM
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU
INNER  JOIN TBLCASABIT AS C ON (C.CARI_KOD = SH.STHAR_CARIKOD)
WHERE SH.STHAR_GCKOD='C' AND SH.STHAR_HTUR='J' AND SH.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'



Cvp: SQL Sorgu - OZCANK - 27-02-2021

Giriş Miktar ve Giriş Fiyat nasıl getirebilirim? Bu sorguda sıfır geliyor.

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, SB.STOK_ADI,(CASE SH.STHAR_GCKOD WHEN 'G' THEN SH.STHAR_GCMIK END) AS MIKTAR,
(CASE WHEN SH.STHAR_GCKOD='G' THEN SH.STHAR_NF END) AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, SH.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) - (SH.STHAR_GCMIK*SH.STHAR_NF*SH.STRA_SATISK3/100) AS IADE_TUT,CS.CARI_ISIM
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU 
INNER JOIN TBLCASABIT AS CS ON (CS.CARI_KOD = SH.STHAR_CARIKOD)
WHERE SH.STHAR_GCKOD='C' AND SH.STHAR_HTUR='J' AND SH.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'



SQL Sorgu - FiRewaLL - 28-02-2021

(27-02-2021, Saat: 16:50)OZCANK Adlı Kullanıcıdan Alıntı: Giriş Miktar ve Giriş Fiyat nasıl getirebilirim? Bu sorguda sıfır geliyor.

SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, SB.STOK_ADI,(CASE SH.STHAR_GCKOD WHEN 'G' THEN SH.STHAR_GCMIK END) AS MIKTAR,
(CASE WHEN SH.STHAR_GCKOD='G' THEN SH.STHAR_NF END) AS FIYAT,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, SH.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) - (SH.STHAR_GCMIK*SH.STHAR_NF*SH.STRA_SATISK3/100) AS IADE_TUT,CS.CARI_ISIM
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU 
INNER JOIN TBLCASABIT AS CS ON (CS.CARI_KOD = SH.STHAR_CARIKOD)
WHERE SH.STHAR_GCKOD='C' AND SH.STHAR_HTUR='J' AND SH.STRA_SATISK3<>'0' AND SH.STOK_KODU='1200036'

Birincisi burada sadece çıkışları ve faturaları çekmişsiniz. Burada giriş miktarı neye göre gelecek. Satış Faturasından giriş miktarı çok doğru değil.
Ha burada  son giriş fiyatı isterseniz

Kod:
SELECT SH.STHAR_GCKOD, SB.GRUP_KODU,SH.FISNO,SH.STHAR_TARIH,    
SH.STOK_KODU, SB.STOK_ADI,(CASE SH.STHAR_GCKOD WHEN 'G' THEN SH.STHAR_GCMIK END) AS MIKTAR,
(SELECT TOP(1) STHAR_NF FROM TBLSTHAR WHERE STOK_KODU=SH.STOK_KODU AND STHAR_GCKOD ='G' AND STHAR_HTUR='J' ORDER BY STHAR_TARIH DESC) AS GIRIS_FIYATI,
(SH.STHAR_GCMIK*SH.STHAR_NF) AS TUTAR, SH.STRA_SATISK3 AS ISK,
(SH.STHAR_GCMIK*SH.STHAR_NF) - (SH.STHAR_GCMIK*SH.STHAR_NF*SH.STRA_SATISK3/100) AS IADE_TUT,CS.CARI_ISIM
FROM TBLSTHAR SH
INNER JOIN TBLSTSABIT SB ON SB.STOK_KODU=SH.STOK_KODU
INNER JOIN TBLCASABIT AS CS ON (CS.CARI_KOD = SH.STHAR_CARIKOD)
WHERE SH.STHAR_GCKOD='C' AND SH.STHAR_HTUR='J'AND SH.STOK_KODU='1200036'
Şeklinde son alış fiyatını çekersiniz.