日期:2014-05-17  浏览次数:20460 次

sql 的问题
本帖最后由 tsbeyond 于 2012-08-27 08:36:44 编辑 主表(GYSYDH)中有一字段名“尺码集”,值“(S)(M)(L)”
从表(GYSYDB)的结构和数据
主表ID,从表ID,代码,部位,    允差, 度法,尺码1,尺码2,尺码3,尺码4,尺码5,尺码6,尺码7,尺码8,尺码9
--------------------------------------------------------------------
1 1 代码 部位型号 允差 度法 S    M    L    XL
1 2 A    前幅     3mm  弧量 16.3 17.3 17.3
1 3 B    夹弯     3mm  平量 7.7  8.2  8.2
1 4 C    捆碗     5mm  平量 18.5 19.5 19.5


现在我要做的是判断字表的存在的尺码(例如:S,M,L,XL) 是否在主表的尺码集中存在,假如不存在,就像上面XL在主表的尺码集中不存在,就要判断

它对应下面对应的字段是否都为空,如果为空就通过校验,否则就报错提示。
我在存储过程中写了这些代码,想通过exec(@sqlStr)这句给@cmStr赋值,但是好像不行,你们有什么好的解决方法?谢谢!
declare @index int
set @index = 1
declare @sqlStr varchar(2000),@cmStr varchar(40)
while @index<=10
   begin
   set @sqlStr = 'select @cmStr=cm'+ltrim(str(@index))+' from GYSYDB where djlsh=11962 and djbth=1 '//djlsh为主表ID,djbth为从表ID,cm1为尺码1,cm2为尺码2,...s
   exec(@sqlStr)
   set @index=@index+1
end
------解决方案--------------------
  

set @sqlStr = 'select '+ @cmStr+'=cm'+ltrim(str(@index))+' from GYSYDB where djlsh=11962 and djbth=1 '--djlsh为主表ID,djbth为从表ID,cm1为尺码1,cm2为尺