PDA

View Full Version : سوال: نوشتن stored procedure برای جداول مرتبط با هم



asrah6
یک شنبه 07 مهر 1392, 22:42 عصر
سلام بر دوستان گرامی
من در دیتابیس سه جدول درست کرده ام که با هم رابطه دارند می خواهم برای آنها یک stored procedure بنویسم که رابطه جداول را داشته و تمام فیلدها را از سه تا جدول select کنم و دو تا پارامتر ورودی داشته باشد
با view در دیتابیس سعی کردم یک view برای این سه جدول بنویسم و در procedure از دستور select داخل view استفاده کنم ولی نشد یعنی امکان شرط گذاشتن نداد لطفا کمکم کنید تا این مشکل حل بشه . با تشکر

behzadkhatari
دوشنبه 08 مهر 1392, 09:14 صبح
ALTER PROCEDURE [dbo].[SP_Name]
@param1 INT,
@param2 INT,
AS
BEGIN
SELECT *.ST, *.CL, *.PA FROM TBLSTUDENT ST INNER JOIN TBLPAYE PA ON ST.IDPAYE=PA.ID
INNER JOIN TBLCLASSNAME CA ON ST.CLID=CA.ID WHERE (شرطها = @PARAM1 AND @PARAM2)
END

asrah6
دوشنبه 08 مهر 1392, 17:04 عصر
سلام بر دوستان من دستور select زیر را نوشتم

create proc SelectAllStudentJoin
@IdPaye int ,
@CLID int
as
begin
SELECT TblStudent.FName, TblStudent.LName, TblStudent.FatherName,
TblStudent.BirthDay, TblStudent.mobil, TblStudent.tell,
TblStudent.NumSt, TblStudent.Pic, TblStudent.IDSt,
TblStudent.IDPaye, TblStudent.CLID,
TblPaye.PayeName, TblClassName.CLassName
from TblStudent inner join TblClassName on TblStudent.CLID=TblClassName.CLID
inner join TblPaye on TblStudent.IDPaye=TblPaye.IdPaye
where (IdPaye=@IdPaye AND CLID=@CLID)
end
go


ولی ارور زیر را می گیرد

veniz2008
دوشنبه 08 مهر 1392, 17:33 عصر
سلام.
فیلدی رو در شرط به کار بردید که بین دو جدول مشترک هست. به همین خاطر sql نمی دونه شما منظورت از فیلدهای IdPaye و CLID اشاره به کدوم جدول هست.
قبل از ذکر نام فیلد مشترک، بایستی حتما نام جدول ذکر بشه.
موفق باشید.