update sjtj set sjks = 
(case tx when 'cxgc_c1' then (select min(sjbh) from cxgc where sjbh like '11%')
when 'cxgc_c1' then (select max(sjbh) from cxgc where sjbh like '22%')
...
else
end
),
sjjs = 
(case tx when 'cxgc_c1' then (select min(sjbh) from cxgc where sjbh like '11%')
when 'cxgc_c1' then (select max(sjbh) from cxgc where sjbh like '22%')
...
else
end
)

解决方案 »

  1.   

    create procedure usp_test(value varchar(10), value2 varchar(10))
    begin
    declare
    @sqlstr varchar(1000)
    set @sqlstr = 'update sjtj set
                  sjks=(select min(sjbh) from cxgc where sjbh like '''+ value +''') ,
       sjjs=(select max(sjbh) from cxgc where sjbh like '''+ value +''')   where tx=' + value2 + ''''
    EXEC sp_executesql @SQLstr
    end试试这种方法应该行的
      

  2.   

    case tx when '  ' then '' when '' then '' ...end
      

  3.   

    @sqlstr 应该定义成 nvarchar(1000)
      

  4.   

    update sjtj set sjks = 
    (case tx when 'cxgc_c1' then (select min(sjbh) from cxgc where sjbh like '11%')
             when 'cxgc_c2' then (select min(sjbh) from cxgc where sjbh like '12%')
             when 'cxgc_c+1' then (select min(sjbh) from cxgc where sjbh like '21%')
     when 'cxgc_c+2' then (select min(sjbh) from cxgc where sjbh like '22%')
             when 'cxgc_c+2' then (select min(sjbh) from cxgc where sjbh like '31%')
             when 'cxgc_f1' then (select min(sjbh) from cxgc where sjbh like '32%')
             when 'cxgc_f2' then (select min(sjbh) from cxgc where sjbh like '41%')
             when 'cxgc_p1' then (select min(sjbh) from cxgc where sjbh like '42%')
             when 'cxgc_p2' then (select min(sjbh) from cxgc where sjbh like '51%')
             when 'cxgc_vb1' then (select min(sjbh) from cxgc where sjbh like '52%')
             when 'cxgc_vf1' then (select min(sjbh) from cxgc where sjbh like '61%')
             when 'cxgc_ft1' then (select min(sjbh) from cxgc where sjbh like '62%')
             when 'cxgc_ft2' then (select min(sjbh) from cxgc where sjbh like '71%')
     when 'cxgc_ft2' then (select min(sjbh) from cxgc where sjbh like '72%')
             when 'cxtk_c1' then (select min(sjbh) from cxtk_2 where sjbh like '11%')
             when 'cxtk_c2' then (select min(sjbh) from cxtk_2 where sjbh like '12%')
             when 'cxtk_c+1' then (select min(sjbh) from cxtk_2 where sjbh like '21%')
     when 'cxtk_c+2' then (select min(sjbh) from cxtk_2 where sjbh like '22%')
             when 'cxtk_c+2' then (select min(sjbh) from cxtk_2 where sjbh like '31%')
             when 'cxtk_f1' then (select min(sjbh) from cxtk_2 where sjbh like '32%')
             when 'cxtk_p1' then (select min(sjbh) from cxtk_2 where sjbh like '42%')
             when 'cxtk_p2' then (select min(sjbh) from cxtk_2 where sjbh like '51%')
             when 'cxtk_vb1' then (select min(sjbh) from cxtk_2 where sjbh like '52%')
             when 'cxtk_vf1' then (select min(sjbh) from cxtk_2 where sjbh like '61%')
             when 'cxtk_ft1' then (select min(sjbh) from cxtk_2 where sjbh like '62%')
             when 'cxtk_ft2' then (select min(sjbh) from cxtk_2 where sjbh like '71%')
     when 'cxtk_ft2' then (select min(sjbh) from cxtk_2 where sjbh like '72%')
             when 'cxxz_c1' then (select min(sjbh) from cxxz where sjbh like '11%')
             when 'cxxz_c2' then (select min(sjbh) from cxxz where sjbh like '12%')
             when 'cxxz_c+1' then (select min(sjbh) from cxxz where sjbh like '21%')
     when 'cxxz_c+2' then (select min(sjbh) from cxxz where sjbh like '22%')
             when 'cxxz_c+2' then (select min(sjbh) from cxxz where sjbh like '31%')
             when 'cxxz_f1' then (select min(sjbh) from cxxz where sjbh like '32%')
             when 'cxxz_p1' then (select min(sjbh) from cxxz where sjbh like '42%')
             when 'cxxz_p2' then (select min(sjbh) from cxxz where sjbh like '51%')
             when 'cxxz_vb1' then (select min(sjbh) from cxxz where sjbh like '52%')
             when 'cxxz_vf1' then (select min(sjbh) from cxxz where sjbh like '61%')
             when 'cxxz_ft1' then (select min(sjbh) from cxxz where sjbh like '62%')
             when 'cxxz_ft2' then (select min(sjbh) from cxxz where sjbh like '71%')
     when 'cxxz_ft2' then (select min(sjbh) from cxxz where sjbh like '72%')
             else 
             end

    ),
    sjjs = 
    (case tx when 'cxgc_c1' then (select max(sjbh) from cxgc where sjbh like '11%')
             when 'cxgc_c2' then (select max(sjbh) from cxgc where sjbh like '12%')
             when 'cxgc_c+1' then (select max(sjbh) from cxgc where sjbh like '21%')
     when 'cxgc_c+2' then (select max(sjbh) from cxgc where sjbh like '22%')
            
             when 'cxgc_f1' then (select max(sjbh) from cxgc where sjbh like '31%')
             when 'cxgc_f2' then (select max(sjbh) from cxgc where sjbh like '32%')
             when 'cxgc_p1' then (select max(sjbh) from cxgc where sjbh like '41%')
             when 'cxgc_p2' then (select max(sjbh) from cxgc where sjbh like '42%')
             when 'cxgc_vb1' then (select max(sjbh) from cxgc where sjbh like '51%')
             when 'cxgc_vb2' then (select max(sjbh) from cxgc where sjbh like '52%')
             when 'cxgc_vf1' then (select max(sjbh) from cxgc where sjbh like '61%')
             when 'cxgc_vf2' then (select max(sjbh) from cxgc where sjbh like '62%')
             when 'cxgc_ft1' then (select max(sjbh) from cxgc where sjbh like '71%')
     when 'cxgc_ft2' then (select max(sjbh) from cxgc where sjbh like '72%')         when 'cxtk_c1' then (select max(sjbh) from cxtk_2 where sjbh like '11%')
             when 'cxtk_c2' then (select max(sjbh) from cxtk_2 where sjbh like '12%')
             when 'cxtk_c+1' then (select max(sjbh) from cxtk_2 where sjbh like '21%')
     when 'cxtk_c+1' then (select max(sjbh) from cxtk_2 where sjbh like '22%')
             when 'cxtk_f1' then (select max(sjbh) from cxtk_2 where sjbh like '31%')
             when 'cxtk_f2' then (select max(sjbh) from cxtk_2 where sjbh like '32%')
             when 'cxtk_p1' then (select max(sjbh) from cxtk_2 where sjbh like '41%')
             when 'cxtk_p2' then (select max(sjbh) from cxtk_2 where sjbh like '42%')
             when 'cxtk_vb1' then (select max(sjbh) from cxtk_2 where sjbh like '51%')
             when 'cxtk_vb1' then (select max(sjbh) from cxtk_2 where sjbh like '52%')
             when 'cxtk_vf1' then (select max(sjbh) from cxtk_2 where sjbh like '61%')
             when 'cxtk_vf2' then (select max(sjbh) from cxtk_2 where sjbh like '62%')
     when 'cxtk_ft1' then (select max(sjbh) from cxtk_2 where sjbh like '71%')
             when 'cxtk_ft2' then (select max(sjbh) from cxtk_2 where sjbh like '72%')         when 'cxxz_c1' then (select max(sjbh) from cxxz where sjbh like '11%')
             when 'cxxz_c2' then (select max(sjbh) from cxxz where sjbh like '12%')
             when 'cxxz_c+1' then (select max(sjbh) from cxxz where sjbh like '21%')
     when 'cxxz_c+2' then (select max(sjbh) from cxxz where sjbh like '22%')
             when 'cxxz_f1' then (select max(sjbh) from cxxz where sjbh like '31%')
             when 'cxxz_f2' then (select max(sjbh) from cxxz where sjbh like '32%')
             when 'cxxz_p1' then (select max(sjbh) from cxxz where sjbh like '41%')
             when 'cxxz_p2' then (select max(sjbh) from cxxz where sjbh like '42%')
             when 'cxxz_vb1' then (select max(sjbh) from cxxz where sjbh like '51%')
             when 'cxxz_vb2' then (select max(sjbh) from cxxz where sjbh like '52%')
             when 'cxxz_vf1' then (select max(sjbh) from cxxz where sjbh like '61%')
             when 'cxxz_vf2' then (select max(sjbh) from cxxz where sjbh like '62%')
             when 'cxxz_ft2' then (select max(sjbh) from cxxz where sjbh like '71%')
     when 'cxxz_ft2' then (select max(sjbh) from cxxz where sjbh like '72%')         else
             end
    ) 查询分析器里出错,错在哪里了?