Rank ile hesaplanan alana şart koyma

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
Kullanıcı avatarı
sunye
Üye
Mesajlar: 105
Kayıt: 24 Ağu 2004 04:49
Konum: izmir

Rank ile hesaplanan alana şart koyma

Mesaj gönderen sunye »

Merhaba,

Kod: Tümünü seç

SELECT 
	CH.CARI_KOD, CS.CARI_ISIM, CB.IBANNO,
	SUM(CH.BORC) AS BORC,
	SUM(CH.ALACAK) AS ALACAK,
	SUM(CH.BORC)-SUM(CH.ALACAK) AS BAKIYE,
	SUM(CASE WHEN CH.VADE_TARIHI<='2016-01-20' THEN CH.BORC ELSE 0 END)- SUM(CH.ALACAK) AS VADELI,
	RANK() OVER (PARTITION BY CB.CARIKODU ORDER BY CB.IBANNO ASC) as SATIR
	FROM TBLCAHAR CH
		INNER JOIN TBLCASABIT CS ON CH.CARI_KOD=CS.CARI_KOD 
        LEFT JOIN TBLCABNKSABIT CB ON CS.CARI_KOD=CB.CARIKODU 
	WHERE CS.CARI_TIP='A'
	GROUP BY CH.CARI_KOD, CS.CARI_ISIM, CB.CARIKODU, CB.IBANNO HAVING SUM(CASE WHEN CH.VADE_TARIHI<='2016-01-20' THEN CH.BORC ELSE 0 END)- SUM(CH.ALACAK) >0
SQL cümlesiyle sorgumu sorunsuz bir şekilde çalıştırabiliyorum ancak "SATIR"alanını where yada having bölümlerinde kullanamıyorum.

Her iki şartta da invalid column "SATIR" hatası veriyor.
Bildiğim tek şey, hiç bir şey bilmediğim.
thelvaci
Kıdemli Üye
Mesajlar: 770
Kayıt: 11 Tem 2010 07:17
Konum: Istanbul
İletişim:

Re: Rank ile hesaplanan alana şart koyma

Mesaj gönderen thelvaci »

Bunun için WITH(CTE) kullanabilirsiniz.
Kullanıcı avatarı
mustafasoy
Üye
Mesajlar: 154
Kayıt: 02 Ağu 2013 05:00
Konum: istanbul
İletişim:

Re: Rank ile hesaplanan alana şart koyma

Mesaj gönderen mustafasoy »

basit anlamda bir ilave de ben yapayım
select alan1 as satir,alan2 as sutun from tablox
gibi sorgun olduğunu düşün

sorgunun başın select * from ( koyarsın ve en sonunda da ) xx yaparsın xx diye bir subselect elde etmiş olursun
sonrasında satır ve sutun diye kolonlar elde etmiş oldun
kolay gelsin
http://www.mustafasoy.com.tr
Nasıl ki Soru sorarak öğrendiyseniz , öğrendiklerinizi cevap vererek öğretiniz.
Cevapla