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.