if @type='医药费用监测表'
begin
if charindex('sel',@crdjh)>0 
set @crdjh='%'
else
set @crdjh=@crdjh+'%'
           select 住院序号,姓名,费用合计,药品费=a11+a12+a13,住院天数=datediff(day,入院日期,通知日期) from yybrryjy 
where 结帐日期 between @start and @end and 诊断 like @crdjh
select @okflag='OK'
end

解决方案 »

  1.   

    if charindex('sel',@crdjh)>0 --含有sel字符
    set @crdjh='%' --把变量@crdjh设置为%
      

  2.   

    if @type='医药费用监测表' --判断类型,如果是这种类型就进入
    begin 
    if charindex('sel',@crdjh)>0 --判断SEL如果在@CRDJH里面
    set @crdjh='%' 
    else 
    set @crdjh=@crdjh+'%' --如果不在就加个通配符          select 住院序号,姓名,费用合计,药品费=a11+a12+a13,住院天数=datediff(day,入院日期,通知日期) from yybrryjy 
    where 结帐日期 between @start and @end and 诊断 like @crdjh --通过上面的条件判断进行查询
    select @okflag='OK' --设定okflag参数值为OK
    end
      

  3.   


    if @type='医药费用监测表' 
    begin 
    if charindex('sel',@crdjh)>0   --含有sel字符 
    set @crdjh='%'                 --把变量@crdjh设置为%
    else 
    set @crdjh=@crdjh+'%'          --把变量@crdjh设置加%
              select 住院序号,姓名,费用合计,药品费=a11+a12+a13,住院天数=datediff(day,入院日期,通知日期) 
    from yybrryjy 
    where 结帐日期 between @start and @end and 诊断 like @crdjh 
                     ---查询在表yybrryjy 内查找结帐日期在@start 和@end 之间并且诊断内含有@crdjh 字符的语句select @okflag='OK'  -----把变量@okflag设置加OK
    end
      

  4.   

    if @type='医药费用监测表' 
    begin 
    if charindex('sel',@crdjh)>0  --检测@crdjh中是否有sel
    set @crdjh='%' --有
    else  
    set @crdjh=@crdjh+'%' --没有
              select 住院序号,姓名,费用合计,药品费=a11+a12+a13,住院天数=datediff(day,入院日期,通知日期) from yybrryjy 
    where 结帐日期 between @start and @end and 诊断 like @crdjh 
    select @okflag='OK' 
    end
      

  5.   

    药品费=a11+a12+a13这个是什么意思?
      

  6.   

    if @type='医药费用监测表' 
    begin 
    if charindex('sel',@crdjh)>0 --判断是否含sel字符
    set @crdjh='%' --设置初始值
    else      
    set @crdjh=@crdjh+'%' --不包含设置初始值
              select 住院序号,姓名,费用合计,药品费=a11+a12+a13,住院天数=datediff(day,入院日期,通知日期) ----查询语句不解释from yybrryjy 
    where 结帐日期 between @start and @end and 诊断 like @crdjh 
    select @okflag='OK' 
    end
      

  7.   

    a11 a12 a13 是怎么来的了?
      

  8.   

    if ---条件成立时
    else
    ---条件不成立时
      

  9.   


    a11 a12 a13 是表yybrryjy的字段
      

  10.   

    select 住院序号,姓名,费用合计,药品费=a11+a12+a13,住院天数=datediff(day,入院日期,通知日期) ----查询语句不解释from yybrryjy 
    where 结帐日期 between @start and @end and 诊断 like @crdjh 
    但是我的表头是 住院号 姓名 住院总费用 药品费 住院天数 怎么改过来了?
      

  11.   


    select 住院序号 as 住院号,姓名,费用合计 as 住院总费用,药品费=a11+a12+a13,住院天数=datediff(day,入院日期,通知日期)
    from yybrryjy 
    where 结帐日期 between @start and @end and 诊断 like @crdjh