存储过程中 SQL字符串拼接问题
CREATE PROCEDURE T_ZzSwl --/组装实物量_生产
@b_date datetime=null,
@e_date datetime=null,
@bc nvarchar(2)=null,
@Ry nvarchar(10)=null
AS
begin
set nocount on
DECLARE @sql varchar(8000) --/sql语句
DECLARE @BD varchar(4000) --/开始日期
DECLARE @ED varchar(4000) --/结束日期
DECLARE @BED varchar(4000) --/开始日期+结束日期
DECLARE @BDT varchar(4000) --/开始日期
DECLARE @EDT varchar(4000) --/结束日期
DECLARE @BEDT varchar(4000) --/开始日期+结束日期
DECLARE @STJ varchar(4000) --/开始条件
DECLARE @ZTJ varchar(4000) --/中间条件
set @bc=ltrim(rtrim(@bc))
set @Ry=ltrim(rtrim(@Ry))
SET @BD= ' AND 日期 = ' ' '+convert(varchar(10),@b_date,120)+ ' ' ' ' --/开始日期
SET @ED= ' AND 日期 = ' ' '+convert(varchar(10),@e_date,120)+ ' ' ' ' --/结束日期
SET @BED= ' AND 日期 between ' ' '+convert(varchar(10),@b_date,120)+ ' ' ' and ' ' '+convert(varchar(10),@e_date,120)+ ' ' ' ' --/开始+结束日期(sql字符串 开使用)
SET @BDT= ' OR 日期 = ' ' '+convert(varchar(10),@b_date,120)+ ' ' ' ' --/开始日期
SET @EDT= ' OR 日期 = ' ' '+convert(varchar(10),@e_date,120)+ ' ' ' ' --/结束日期
SET @BEDT= ' OR 日期 between ' ' '+convert(varchar(10),@b_date,120)+ ' ' ' and ' ' '+convert(varchar(10),@e_date,120)+ ' ' ' ' --/开始+结束日期(sql字符串 中间用)
SET @STJ= ' '
SET @ZTJ= ' '
SET @sql= 'SELECT 日期,班次,组长,人员1,人员2,人员3,人员4,学徒 from 表1 where 1=1 '
IF @b_date IS NOT NULL
SET @STJ=@BD
SET @ZTJ=@BDT
IF @b_date IS NULL
SET @STJ=@ED
SET @ZTJ=@EDT
IF @b_date IS NOT NULL AND @e_date IS NOT NULL
SET @STJ=@BED
SET @ZTJ=@BEDN
IF @bc IS NOT NULL
SET @STJ=@STJ+ ' AND 班次 = ' ' '+@bc+ ' ' ' '
SET @ZTJ=@ZTJ+ ' AND 班次 = ' ' '+@bc+ ' ' ' '
IF @Ry IS NOT NULL
--/问题出在下面这句****************
SET @sql=@sql+@STJ+ ' AND 组长 = ' ' '+@Ry+ ' ' ' '+@ZTJ+ ' AND 姓名1 = ' ' '+@Ry+ ' ' ' '+@ZTJ+ ' AND 姓名2 = ' ' '+@Ry+ ' ' ' '+@ZTJ+ ' AND 姓名3 = ' ' '+@Ry+ ' ' ' '+@ZTJ+ ' AND 姓名4 = ' ' '+@Ry+ ' ' ' '+@ZTJ+ ' AND 学徒 = ' ' '+@Ry+ ' ' ' '+ 'order by 日期,班次 '
--如果把 @ZTJ &nbs