if exists(select name from sysobjects where name ='fGetKalaVaredeSadere') drop function fGetKalaVaredeSadere go create function fGetKalaVaredeSadere() returns table return( -----------موجودی کالا در انبارها select k.codeKala[Code], case when mojoodiAvaldoreh>0 then mojoodiAvalDoreh else 0 end[Varede], case when mojoodiAvaldoreh<0 then mojoodiAvalDoreh else 0 end[Sadere] from kalaDarAnbar k ----- union all -----تعداد کالاهای وارده در برگه های خرید و برگشت از فروش select d.codeKala, d.tedad, 0 from Bargeh m join BargehDetail d on m.code=d.codebargeh where d.isKala = 1 and m.noe in(1,3) and /*kharid va bargashAzForoosh*/ m.vaziat != 1 ----- union all -----تعداد کالاهای صادره در برگه های فروش و برگشت از خرید select d.codeKala, 0, d.tedad from Bargeh m join BargehDetail d on m.code=d.codebargeh where d.isKala = 1 and m.noe in(0,4) and /*foroosh va bargashAzKharid*/ m.vaziat != 1 ----- union all -----انبار گردانی کالاهای اضافی select d.codeKala, d.tedad, 0 from anbarGardani m join AnbarGardaniDetail d on m.code = d.codeAnbarGardani where m.Vaziat != 1 and d.noe=1 /*daraamad*/ ----- union all -----انبارگردانی کالاهای کسری select d.codeKala, 0, d.tedad from anbarGardani m join AnbarGardaniDetail d on m.code = d.codeAnbarGardani where m.Vaziat != 1 and d.noe=0 /*hazineh*/ )