PDA

View Full Version : سوال store procedure



f.rahdar
جمعه 08 دی 1391, 09:10 صبح
سلام
با توجه به شکل با این 2 جدولم می خوام تعداد کالاهای خریده شده رو منهای فروخته شده کنم تا بدونم در حال حاضر چند کالا دارم.اما نمیدونم چطور با store procedure بنویسم
لطفا راهنماییم کنید
97405

ferdin
جمعه 08 دی 1391, 10:25 صبح
سلام

ببین توی جدول مستر فیلد Type ٰ- اگه 1 با شه یعنی اینکه کالا خرید شده و با فرض اینکه اگه فروش بره یک رکورد جدید ثبت می کنی با type صفر و رکورد مربوط به خریدشو بروزرسانی نمی کنی می تونی از کد زیر استفاده کنی :




Create procedure spTest

As
Declare @CountKharid numeric(18 ,0)
Declare @CountForush numeric(18 ,0)
Declare @CountMojudi numeric(18 ,0)

Begin

Select @CountKharid = fDetail.Count
From fMaster
inner join fDetail On fMaster.id = fDetail.SrlfMaster
where fDetail.Type = 1


Select @CountForush = fDetail.Count
From fMaster
inner join fDetail On fMaster.id = fDetail.SrlfMaster
where fDetail.Type = 0



set @CountMojudi = ISNULL(@CountKharid ,0) - ISNULL(@CountForush ,0)


End



نمی دونم ساختار جدولتو و اینکه چطوری insert میکنیو درست متوجه شدم یا نه ؟

به هر حال فکر کنم کد بالا حالا شاید با یکم تغییر کمکت کنه.

f.rahdar
یک شنبه 10 دی 1391, 11:48 صبح
CREATE PROCEDURE [dbo].[JKk]
@SrlProduct int
as
begin

declare @Buy int
declare @Sale int

-------------------محاسبه تعداد کالای خریداری شده برای یک محصول خاص
SELECT @Buy= SUM(FDetail.Cunt)
FROM FDetail INNER JOIN
FMaster ON FDetail.Srlfmaster = FMaster.ID
WHERE (FMaster.typee ='1') AND (FMaster.Status_Basket = 1) AND (FDetail.SrlProduct = @SrlProduct)

-------------------محاسبه تعداد کالای فروخته شده برای یک محصول خاص
SELECT @Sale= SUM(FDetail.Cunt)
FROM FDetail INNER JOIN
FMaster ON FDetail.Srlfmaster = FMaster.ID
WHERE (FMaster.typee = '0') AND (FMaster.Status_Basket = 1) AND (FDetail.SrlProduct = @SrlProduct)

-------------------محاسبه تعداد موجودی برای یک محصول خاص
return (select @Buy-@Sale)

end