سلام
اين پروسيجر رو واسه صدور صورتحساب كالا نوشتم
1-ايا درسته؟
CREATE PROCEDURE M_K_Kharid_INSERT
@cod as int,
@codkala as int,
@codmoshtari as int ,
@noaekharid as nchar(10),
@takhfif as money,
@date1 as datetime,
@tedad as int
AS
declare @price as money
/* جهت جلوگيري از ورود مقادير تكراري */
if (select count(*) from kharidmoshtari where (cod=@cod and @codkala=codkala and @codmoshtari=codmoshtari and @noaekharid=noaekharid and @takhfif=takhfif and @date1=date1 and tedad=@tedad))=0
begin
-- شرط جهت انتخاب به تعداد موجودي
if (SELECT count(*) FROM kala where(tedad >=@tedad ))>0
begin
insert into kharidmoshtari (cod,codkala,codmoshtari,noaekharid,takhfif,date1, tedad,price1)
select @cod,@codkala,@codmoshtari,@noaekharid,@takhfif, @date1,@tedad, sum(kala.ghamatfo*kharidmoshtari.tedad) as price
from kala
join kharidmoshtari
on kala.cod=kharidmoshtari.codkala
group by kharidmoshtari.tedad, kala.ghamatfo, kharidmoshtari.cod
--به تعداد خريد از موجودي كالا كسر ميشود
update tedad set tedad=tedad-@tedad
where cod=@cod
return 1
end
end
else
return 0
GO
2-چطوري بايد توي Query Analyzer اونو اجرا كنم و مقدار بدم ؟ اينو نوشتم اشتباه در مياد
M_K_Kharid_INSERT 100,5,13,1,2,2009,50
و تنها ارگوماني رو كه ارسال نميكنم price هست كه اونو بايد خود روسيجر محاسبه كنه