SQL de AS Değişkeni kullanmak

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

SQL de AS Değişkeni kullanmak

Mesaj gönderen ozcank »

Arkadaşlar Merhaba, SQL sorgusun da bir şey yapmak istiyorum , Bakiyesi sıfır olanları almak istemiyorum ne yaptıysam ekleyemedim yardımcı olabilir misiniz?

Kod: Tümünü seç

SELECT dbo.TRK(ST.STOK_KODU) AS Stok_Kodu, dbo.TRK(ST.STOK_ADI) AS Stok_Adı, dbo.TRK(ST.GRUP_KODU) AS Grup_Kodu,ST.Barkod1,ST.Barkod2,ST.Barkod3,ST.Olcu_Br1,
SUM(CASE WHEN SH.STHAR_GCKOD = 'G' THEN SH.STHAR_GCMIK ELSE 0 END) - SUM(CASE WHEN SH.STHAR_GCKOD = 'C' THEN SH.STHAR_GCMIK ELSE 0 END) AS 'Bakiye'
FROM dbo.TBLSTSABIT AS ST INNER JOIN dbo.TBLSTHAR AS SH ON ST.STOK_KODU = SH.STOK_KODU
WHERE (ST.GRUP_KODU <> 'F_FARKI') AND (ST.KOD_4 <> 'Y') AND (SH.STHAR_HTUR <> 'N')
GROUP BY ST.STOK_KODU, ST.STOK_ADI, ST.GRUP_KODU, ST.KOD_1,ST.OLCU_BR1,st.barkod1,st.barkod2,st.barkod3
GO
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Re: SQL de AS Değişkeni kullanmak

Mesaj gönderen mussimsek »

Bunun bir kaç yolu var.

1. Temp Tablo.

2. SubQuery.

Kod: Tümünü seç

select SQ.*
from (SELECT dbo.TRK(ST.STOK_KODU) AS Stok_Kodu, dbo.TRK(ST.STOK_ADI) AS Stok_Adı, dbo.TRK(ST.GRUP_KODU) AS Grup_Kodu,ST.Barkod1,ST.Barkod2,ST.Barkod3,ST.Olcu_Br1,
SUM(CASE WHEN SH.STHAR_GCKOD = 'G' THEN SH.STHAR_GCMIK ELSE 0 END) - SUM(CASE WHEN SH.STHAR_GCKOD = 'C' THEN SH.STHAR_GCMIK ELSE 0 END) AS 'Bakiye'
FROM dbo.TBLSTSABIT AS ST INNER JOIN dbo.TBLSTHAR AS SH ON ST.STOK_KODU = SH.STOK_KODU
WHERE (ST.GRUP_KODU <> 'F_FARKI') AND (ST.KOD_4 <> 'Y') AND (SH.STHAR_HTUR <> 'N')
GROUP BY ST.STOK_KODU, ST.STOK_ADI, ST.GRUP_KODU, ST.KOD_1,ST.OLCU_BR1,st.barkod1,st.barkod2,st.barkod3) as SQ
where SQ.Bakiye<>0
gibi.

3. having

Kod: Tümünü seç

SELECT dbo.TRK(ST.STOK_KODU) AS Stok_Kodu, dbo.TRK(ST.STOK_ADI) AS Stok_Adı, dbo.TRK(ST.GRUP_KODU) AS Grup_Kodu,ST.Barkod1,ST.Barkod2,ST.Barkod3,ST.Olcu_Br1,
SUM(CASE WHEN SH.STHAR_GCKOD = 'G' THEN SH.STHAR_GCMIK ELSE 0 END) - SUM(CASE WHEN SH.STHAR_GCKOD = 'C' THEN SH.STHAR_GCMIK ELSE 0 END) AS 'Bakiye'
FROM dbo.TBLSTSABIT AS ST INNER JOIN dbo.TBLSTHAR AS SH ON ST.STOK_KODU = SH.STOK_KODU
WHERE (ST.GRUP_KODU <> 'F_FARKI') AND (ST.KOD_4 <> 'Y') AND (SH.STHAR_HTUR <> 'N')
GROUP BY ST.STOK_KODU, ST.STOK_ADI, ST.GRUP_KODU, ST.KOD_1,ST.OLCU_BR1,st.barkod1,st.barkod2,st.barkod3
HAVING SUM(CASE WHEN SH.STHAR_GCKOD = 'G' THEN SH.STHAR_GCMIK ELSE 0 END) - SUM(CASE WHEN SH.STHAR_GCKOD = 'C' THEN SH.STHAR_GCMIK ELSE 0 END) <>0 
gibi.

parantezler vs. sıkıntı çıkartabilir, düzenlersiniz.

Kolay gelsin.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: SQL de AS Değişkeni kullanmak

Mesaj gönderen ozcank »

Çok teşekkür ederim oldu.
Cevapla