SQL Sorgu Hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

SQL Sorgu Hatası

Mesaj gönderen ozcank »

Arkadaşlar Merhaba; SQL de bir sorgu yazdım ama bir hata veriyor rica etsem bakabilir misiniz?

Kod: Tümünü seç

SELECT CS.CARI_KOD,CS.CARI_ISIM,SUM(ALACAK-BORC) AS BAKIYE,
(SELECT SUM(ALACAK) FROM TBLCAHAR WITH (NOLOCK) WHERE CARI_KOD=CH.CARI_KOD AND HAREKET_TURU='G') AS CEK_TOPLAM,
(SELECT EFF_SATIS FROM NETSIS..DOVIZ WITH (NOLOCK) WHERE CONVERT(VARCHAR, GETDATE(),23)=TARIH AND SIRA='1') AS GUNLUK_KUR,
(SELECT SUM(ALACAK) FROM TBLCAHAR WITH (NOLOCK) WHERE CARI_KOD=CH.CARI_KOD AND HAREKET_TURU='G')/
(SELECT EFF_SATIS FROM NETSIS..DOVIZ WITH (NOLOCK) WHERE CONVERT(VARCHAR, GETDATE(),23)=TARIH AND SIRA='1') AS DOVIZLI_TOPLAM,
(SELECT SUM(ALACAK) FROM TBLCAHAR WITH (NOLOCK) WHERE CARI_KOD=CH.CARI_KOD AND HAREKET_TURU='G')/
(SELECT EFF_SATIS FROM NETSIS..DOVIZ WITH (NOLOCK) WHERE CONVERT(VARCHAR, GETDATE(),23)=TARIH AND SIRA='1')-
(SELECT CS.CARI_KOD,CS.CARI_ISIM,SUM(ALACAK-BORC)) AS KALAN_TOPLAM
FROM TBLCAHAR CH
WITH (NOLOCK) INNER JOIN TBLCASABIT CS 
WITH (NOLOCK) ON CS.CARI_KOD=CH.CARI_KOD
WHERE CH.CARI_KOD='120 614'
GROUP BY CH.CARI_KOD,CARI_ISIM,BAKIYE,CS.CARI_KOD
Hata : Msg 116, Level 16, State 1, Line 8
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.
mehmetantalya
Üye
Mesajlar: 189
Kayıt: 30 Eyl 2013 10:17

Re: SQL Sorgu Hatası

Mesaj gönderen mehmetantalya »

(SELECT CS.CARI_KOD,CS.CARI_ISIM,SUM(ALACAK-BORC)) AS KALAN_TOPLAM
select fadesi icerisine birden fazla alan eklemissiniz .
CS.CARI_KOD,CS.CARI_ISIM bunlari kaldirirsaniz sorun duzelecektir.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: SQL Sorgu Hatası

Mesaj gönderen freeman35 »

select ->(Seç) .... from -> (Nereden) ???
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgu Hatası

Mesaj gönderen ozcank »

mehmetantalya çok teşekkür ederim dediğin gibi oldu.
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgu Hatası

Mesaj gönderen ozcank »

Merhaba ; Arkadaşlar bu sorgu düzgün çalışıyor fakat "BAKIYE" eksi olduğu zaman "KALAN TOPLAM" sonucu yanlış veriyor rica etsem bir bakabilir misiniz ?
Bu kısmı eksi yerine + koyduğum zaman "KALAN_TOPLAM" doğru çıkıyor bu sefer de "BAKIYE" artı olduğu zaman sonuç yanlış oluyor.

Kod: Tümünü seç

(SELECT SUM(CH.BORC-CH.ALACAK))+(SELECT SUM(TUTAR) FROM TBLMCEK MC WITH (NOLOCK) WHERE MC.SC_VERENK=CH.CARI_KOD AND MC.SC_SONDUR='B')/
(SELECT EFF_SATIS FROM NETSIS..DOVIZ WITH (NOLOCK) WHERE CONVERT(VARCHAR, GETDATE(),23)=TARIH AND SIRA='1') AS KALAN_TOPLAM
Bu kısım da yapmak istediğim;
İlk önce ; "BAKIYE" buluyorum
Sonra ; "CEK_TOPLAM" Beklemede ki çekleri
"GUNLUK_KUR" Günlük kur
CEK_TOPLAM/GUNLUK_KUR=DOVIZLI_TOPLAM 'Çekleri günün kuru ile dövize çeviriyorum'
BAKIYE-DOVIZLI_TOPLAM=KALAN_TOPLAM 'Dövizli çek toplamı ile de Bakiyeyi çıkıyorum'


Kod: Tümünü seç

SELECT CS.CARI_KOD,CS.CARI_ISIM, SUM(CH.BORC-CH.ALACAK) AS BAKIYE,

(SELECT MAX(SH.STHAR_NF) FROM TBLSTHAR SH WITH (NOLOCK) WHERE SH.STHAR_CARIKOD=CH.CARI_KOD AND SH.STOK_KODU='15' AND SH.STHAR_GCKOD='C') AS BIRIM_FIYAT,

(SELECT SUM(TUTAR) FROM TBLMCEK MC WITH (NOLOCK) WHERE MC.SC_VERENK=CH.CARI_KOD AND MC.SC_SONDUR='B') AS CEK_TOPLAM,

(SELECT EFF_SATIS FROM NETSIS..DOVIZ WITH (NOLOCK) WHERE CONVERT(VARCHAR, GETDATE(),23)=TARIH AND SIRA='1') AS GUNLUK_KUR,

(SELECT SUM(TUTAR) FROM TBLMCEK MC WITH (NOLOCK) WHERE MC.SC_VERENK=CH.CARI_KOD AND MC.SC_SONDUR='B')/
(SELECT EFF_SATIS FROM NETSIS..DOVIZ WITH (NOLOCK) WHERE CONVERT(VARCHAR, GETDATE(),23)=TARIH AND SIRA='1') AS DOVIZLI_TOPLAM,

(SELECT SUM(CH.BORC-CH.ALACAK))-(SELECT SUM(TUTAR) FROM TBLMCEK MC WITH (NOLOCK) WHERE MC.SC_VERENK=CH.CARI_KOD AND MC.SC_SONDUR='B')/
(SELECT EFF_SATIS FROM NETSIS..DOVIZ WITH (NOLOCK) WHERE CONVERT(VARCHAR, GETDATE(),23)=TARIH AND SIRA='1') AS KALAN_TOPLAM

FROM TBLCAHAR CH  
INNER JOIN TBLCASABIT CS ON CS.CARI_KOD=CH.CARI_KOD

WHERE CH.CARI_KOD='120 876' 
GROUP BY CH.CARI_KOD,CS.CARI_ISIM,BAKIYE,CS.CARI_KOD
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgu Hatası

Mesaj gönderen ozcank »

Arkadaşlar yardım edecek kimse yok mu?
ozcank
Üye
Mesajlar: 925
Kayıt: 28 Nis 2005 05:29

Re: SQL Sorgu Hatası

Mesaj gönderen ozcank »

Arkadaşlar Merhaba ; Bir sorum olacak ben yapamadım ;
Sorgu çalışıyor fakat bir şart eklemek istedim ekleyemedim rica etsem yardımcı olur musunuz ?
TBLSFATUPRM de SATISTAEK alanı var bu alan NULL - 'E' veya 'H' olarak değişiyor ben şunu yapmak istedim,
eğer SATISTAEK='NULL' ve 'H' ise hiç bir şey yapma 'E' ise aşağıdaki sorgu çalışsın.
TBLSFATUPRM de inner join le bağlayabileceğim bir alan yok tamamen parametrelerin olduğu yer.

Kod: Tümünü seç

SELECT a.fatirs_no,a.gib_fatirs_no,a.tarih, c.cari_isim, a.bruttutar, a.SAT_ISKT, (a.GEN_ISK1T+a.GEN_ISK2T+a.GEN_ISK3T) AS GENEL_ISKonto,
               a.TIPI,a.GENELTOPLAM,
			   sum(CASE WHEN b.STHAR_KDV='1' THEN (b.STHAR_NF*b.STHAR_KDV*b.STHAR_GCMIK)/100 ELSE 0 END ) AS KDV1,
               Sum(CASE WHEN b.STHAR_KDV='8' THEN (b.STHAR_NF*b.STHAR_KDV*b.STHAR_GCMIK)/100 ELSE 0 END) AS KDV8,
               Sum(CASE WHEN b.STHAR_KDV='18' THEN (b.STHAR_NF*b.STHAR_KDV*b.STHAR_GCMIK)/100 ELSE 0 END) AS KDV18,
               CASE a.TIPI 
			   WHEN '1' THEN ('Kapalı Fatura') 
			   WHEN '2' THEN ('Açık Fatura')
               WHEN '3' THEN ('Muhtelif Fatura')
               WHEN '4' THEN ('İade Fatura')
               WHEN '5' THEN ('Zayi İade Fatura') END AS FATURATIPI,
			   CASE f.ACIK3 
			   WHEN '1' THEN ('Kapalı Fatura') 
			   WHEN '2' THEN ('Açık Fatura')
               WHEN '3' THEN ('Muhtelif Fatura')
               WHEN '4' THEN ('İade Fatura')
               WHEN '5' THEN ('Zayi İade Fatura') END AS FATURATIPI,
			   CASE f.ACIK3 
			   WHEN 'F' THEN ('Fark Faturası') 
			   WHEN 'H' THEN ('Hizmet Faturası') ELSE '' END AS DURUMU
			   
               FROM (TBLFATUIRS as a
			   inner join TBLSTHAR as b on a.FATIRS_NO = b.FISNO)
               Inner Join TBLCASABIT as c on a.cari_kodu = c.cari_kod
               Inner Join TBLFATUEK as f on a.FATIRS_NO = f.FATIRSNO
               WHERE a.FTIRSIP='1'
			   --and a.Tarih between :ptarih1 and :ptarih2
               Group by F.ACIK3,a.TIPI,a.fatirs_no,a.gib_fatirs_no,a.tarih, c.cari_isim, a.bruttutar, a.SAT_ISKT, (a.GEN_ISK1T+a.GEN_ISK2T+a.GEN_ISK3T), a.geneltoplam
Cevapla