declare @date  nvarchar(6)
declare @sql nvarchar(2000)
declare @dept int
set @dept=5
set @date='201006'
set @sql='select  sum(wr_qty_ord) from fgrd_det join wr_route on wr_nbr=fgrd_fgr and wr_lot=fgrd_lot
join fgr_mstr on fgrd_fgr=fgr_fgr where wr_mch=''1050'' and left(fgrd_char2,2)=''1课'' and fgr_date='+@date+cast(@dept as nvarchar(2))
print (@sql)结果
select  sum(fgrd_qty) from fgrd_det join wr_route on wr_nbr=fgrd_fgr and wr_lot=fgrd_lot
join fgr_mstr on fgrd_fgr=fgr_fgr 
where wr_mch='1050' and left(fgrd_char2,2)='2课' and fgr_date>20100605---看这里正常是'20100605'。。该如果修改!

解决方案 »

  1.   

    declare @date  nvarchar(6)
    declare @sql nvarchar(2000)
    declare @dept int
    set @dept=5
    set @date='201006'
    set @sql='select  sum(wr_qty_ord) from fgrd_det join wr_route on wr_nbr=fgrd_fgr and wr_lot=fgrd_lot
    join fgr_mstr on fgrd_fgr=fgr_fgr where wr_mch=''1050'' and left(fgrd_char2,2)=''1课'' and fgr_date='''+@date+cast(@dept as nvarchar(2))+''''
    print (@sql)
      

  2.   

     and fgr_date='''+@date+cast(@dept as nvarchar(2))+''''
      

  3.   

    如果里面只有一个单引号的话。就不是一个string了当中的SQL语句会被截断。 where wr_mch=''1050'' and left(fgrd_char2,2)=''1课''