PDA

View Full Version : ایجاد یک SP برای گزارش گیری



meysampaknahad
جمعه 29 مهر 1390, 23:13 عصر
سلام
من یه SP تویه برنامم دارم که بصورت زیر هستش

Select * From tbltest Where (Rdate <= @maxdate AND Rdate >= @mindate)
حالا میخام بر اساس اختیاری که به کاربرم دادم در صورت نیاز کاربر بتونه گزینه های بعد از Where رو افزایش بده. یعنی گزارش مورد نظرش رو با فیلتر های بیشتری ایجاد کنه. به این صورت :


Select * From tbltest Where (Rdate <= @maxdate AND Rdate >= @mindate) And RName=@name
تعداد این فیلدها هم مثلاً تا 5 تا قابل افزایش باشه. نیاز دارم که این کار رو حتماً از طریق SP انجام بدم . لطفاً راهنمایی کنید.

mta_va
شنبه 30 مهر 1390, 07:47 صبح
خیلی ساده هست.....با استفاده از دستورات TSQL عمل بکن
یعنی همهی متغییر ها را به پروسیجر پاس بده و بعد با توجه به متغییر هایی که مقدار دارن رشته ی where را می سازی و بعدش کل دستوری که نوشتی را اجرا بکن.. مثلا این طوری :



declare @whereString nvarchar(max)
set @whereString=N''

if(ltrim(rtrim(@name)) <>N'')
set @whereString=@whereString+N' and name=N'''+@name+N''''

declare @command nvarchar(max)
set @command =N'Select * From tbltest'+@whereString

DECLARE @sp sysname
set @sp ='sp_executesql'
exec @sp @command