ModelNO = (Select '+@i+'='+@i+'+'',''+RTRIM(ModelNO) from可能有问题,没看明白

解决方案 »

  1.   

    (Select '+@i+'='+@i+'+'',''+RTRIM(ModelNO) from (select distinct PartNO,ModelNO from '+@temp5+') as thisTemp Where thisTemp.PartNO = '+@temp5+'.PartNO Order By ModelNO)
    后面那句话就是根据PartNO 找到相应的ModelNO,因为ModelNO可能有多个,所以把他们合并起来,中间加上“,”
    这个我在字定义函数里已经实现了。但问题是现在表名@temp5是变量,不能在函数里做,所以想各位帮帮忙,看能否在存储过程里实现
      

  2.   

    如果假定你的SQL没问题的话;declare @s varchar(8000)
    set @s='update '+@finnalTemp+' set ModelNO = (Select '+@i+'='+@i+'+'',''+RTRIM(ModelNO) from (select distinct PartNO,ModelNO from '+@temp5+') as thisTemp Where thisTemp.PartNO = '+@temp5+'.PartNO Order By ModelNO)'execute(@s)这样应该是可以执行的
      

  3.   

    'update ##finnalTemp_67 set ModelNO = (Select =+','+RTRIM(ModelNO) from (select distinct PartNO,ModelNO from ##temp5_67) as thisTemp Where thisTemp.PartNO = ##temp5_67.PartNO Order By ModelNO)'不行啊
    按你说的我跟踪出来是上面这样的。
    Select 转变的确有问题,下不去的啊
    再帮我看看啊,谢谢
      

  4.   

    哦,对了,我
    set @i=''
    是不是这里的问题啊
    那我的i应该怎么设啊?
    我最后想得到的是比如
    ModelNO1,ModelNO2,ModelNO3这样的
      

  5.   

    不对不对不对啊,我@i='i'的时候,他提示Invalid column name 'i'.
    怎么办啊,再帮我看看啊
      

  6.   

    这样吧:你把
    Select '+@i+'='+@i+'+'',''+RTRIM(ModelNO) from (select distinct PartNO,ModelNO from '+@temp5+') as thisTemp Where thisTemp.PartNO = '+@temp5+'.PartNO Order By ModelNO这句用实际的参数代替一下,看看结果是什么;其实我主要是担心set ModelNO = [一推的查询结果];这好象就不行了
      

  7.   

    exec ('update '+@finnalTemp+' set ModelNO =  -----這裡應該是 in而不是等於
    樓主可以建立一個函數它的返回類型是 字符串 例如 'a,b,c,'
    這樣應該能實現你的要求的