Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
allendehl
Starting Member
1 Post |
Posted - 2008-01-22 : 15:02:29
|
Hi friends...this is my first post to the forum, so Hello!!!Well..I created a SP in which I build the final statement dynamically.This is it:*******************CREATE PROCEDURE [spGetLeadsByTemplate]@LeadType int,@TemplateId intASDeclare @Filter varchar(2000)Declare @Field varchar(100)Declare @Oper varchar(100)Declare @Crit varchar(1000)Declare @SQL varchar(2000)Declare @TableName varchar(20)Declare @FieldHeader varchar(5)set @Filter = ''set @Field = ''set @Oper = ''set @Crit = ''set nocount on--RETREIVING TABLE NAME BY LEAD TYPEselect @TableName = LDT_TableName, @FieldHeader = LDT_FieldHeader from smeLeadTypes where LDT_LeadTypeId = @LeadType--PREPARING THE WHERE CLAUSE(FILTERS)select @Field = ETD_Field, @Oper = ETD_Operator, @Crit = ETD_Criteria from smeExportTemplateDetails where ETD_TemplateId = @TemplateId and ETD_Sequence = 1if @Field <> '' begin set @Filter = @Filter + ' where ' + ltrim(rtrim(@Field)) + ' ' + ltrim(rtrim(@Oper)) + ' ' + ltrim(rtrim(@Crit))endselect @Field = ETD_Field, @Oper = ETD_Operator, @Crit = ETD_Criteria from smeExportTemplateDetails where ETD_TemplateId = @TemplateId and ETD_Sequence = 2if @Field <> ''begin set @Filter = @Filter + ' and ' + ltrim(rtrim(@Field)) + ' ' + ltrim(rtrim(@Oper)) + ' ' + ltrim(rtrim(@Crit))endselect @Field = ETD_Field, @Oper = ETD_Operator, @Crit = ETD_Criteria from smeExportTemplateDetails where ETD_TemplateId = @TemplateId and ETD_Sequence = 3if @Field <> '' begin set @Filter = @Filter + ' and ' + ltrim(rtrim(@Field)) + ' ' + ltrim(rtrim(@Oper)) + ' ' + ltrim(rtrim(@Crit))endselect @Field = ETD_Field, @Oper = ETD_Operator, @Crit = ETD_Criteria from smeExportTemplateDetails where ETD_TemplateId = @TemplateId and ETD_Sequence = 4if @Field <> '' begin set @Filter = @Filter + ' and ' + ltrim(rtrim(@Field)) + ' ' + ltrim(rtrim(@Oper)) + ' ' + ltrim(rtrim(@Crit))endselect @Field = ETD_Field, @Oper = ETD_Operator, @Crit = ETD_Criteria from smeExportTemplateDetails where ETD_TemplateId = @TemplateId and ETD_Sequence = 5if @Field <> '' begin set @Filter = @Filter + ' and ' + ltrim(rtrim(@Field)) + ' ' + ltrim(rtrim(@Oper)) + ' ' + ltrim(rtrim(@Crit))endset @Filter = @Filter + ' and MRT_Sold = 0'--BUILD THE SQL SENTENCEset @SQL ='SELECT MRT_CREATED, COUNT(*) AS AMOUNTFROM ' + @TableName + ' inner join smeCustomers on (CUS_CustomerId = ' + @FieldHeader + '_CustomerId)' + @Filter + ' group by MRT_CREATED order by MRT_Created DESC'set nocount off--EXECUTE THE SQL SENENCEexec(@SQL)GO**************************************To try it in the Query analyzer I use:exec spGetLeadsByTemplate 173,2and I dont get any results...only this:"The command(s) completed successfully."What should I do to retrieve the results?thx |
|
dinakar
Master Smack Fu Yak Hacker
2507 Posts |
Posted - 2008-01-22 : 17:18:56
|
Put a PRINT @SQL at 3-4 places and see how its building up. You might also want to check for NULLs in any of the parameters.Dinakar Nethi************************Life is short. Enjoy it.************************http://weblogs.sqlteam.com/dinakar/ |
 |
|
|
|
|
|
|