UPDATE t_re 
  SET 回复率=(SELECT count(ToID) 
            FROM Personal_SMSUP 
            WHERE FromID=t_re.te_id)/(SELECT count(FromID) 
            FROM Personal_SMSDOWN 
            WHERE ToID=t_re.te_id)*100+'%'回复率 是varchar类型的请前辈解答

解决方案 »

  1.   

    UPDATE t_re 
      SET 回复率=cast((SELECT count(ToID) 
                FROM Personal_SMSUP 
                WHERE FromID=t_re.te_id)/(SELECT count(FromID) 
                FROM Personal_SMSDOWN 
                WHERE ToID=t_re.te_id)*100 as varchar)+'%' 
      

  2.   


    UPDATE t_re 
      SET 回复率=cast((SELECT count(ToID) 
                FROM Personal_SMSUP 
                WHERE FromID=t_re.te_id)/(SELECT count(FromID) 
                FROM Personal_SMSDOWN 
                WHERE ToID=t_re.te_id)*100 as varchar)+'%' 
      

  3.   

    UPDATE t_re 
      SET 回复率=rtrim((SELECT count(ToID) 
                FROM Personal_SMSUP 
                WHERE FromID=t_re.te_id)/(SELECT count(FromID) 
                FROM Personal_SMSDOWN 
                WHERE ToID=t_re.te_id)*100)+'%' 
      

  4.   


    UPDATE t_re
      SET 回复率=rtrim((SELECT count(ToID)
                FROM Personal_SMSUP
                WHERE FromID=t_re.te_id)/(SELECT count(FromID)
                FROM Personal_SMSDOWN
                WHERE ToID=t_re.te_id)*100)+'%' 
      

  5.   

    UPDATE t_re 
      SET 回复率=cast((SELECT count(ToID) 
                FROM Personal_SMSUP 
                WHERE FromID=t_re.te_id)/(SELECT count(FromID) 
                FROM Personal_SMSDOWN 
                WHERE ToID=t_re.te_id)*100 as varchar)+'%' 如果出现了为0的数据 语句会终止 怎样写一下 避免语句终止的发生  继续计算下一行呢????
      

  6.   

    目标是一样的,将INT转为VARCHAR,如果不转的话就会出现你上面的错误