--try :
dbcc checkdb 

解决方案 »

  1.   

    你的语句也许有问题convert(decimal(10,2),(Sum(convert(decimal(18,2),不良数)*1.0)/Case   when   Sum(convert(decimal(18,2),生产数量)) <=0   then   1   Else   Sum(convert(decimal(18,2),生产数量))   end)*100)))把中间的decimal(10,2)改成decimal(28,2)试下
      

  2.   

    个人觉得是sql server被破坏了,备份数据,到其他机器试试.
      

  3.   

    不清楚问题是什么回事,没碰到过,个人分析觉得需要检查以下几点:1,数据库系统坏了,备份数据,到其他机器上试试
    2、增大 tmpdb 默认大小,按照你的具体需求来看,大概需要增加到1G以上才比较合适,具体大小需要慢慢调整
    3、Into #a  这里使用临时表,操作数据量大的话,log 文件的确是增长飞快的,如果内存大小足够的话,建议改用表变量来实现
      

  4.   

    Select   
    top   1   
    日期,
    批号,
    料号,
    版序,
    作业员,
    班别,
    Sum(生产数量)   As   生产数量,
    Sum(不良数)   As   不良数,                                     
    Sum(生产数量   -   不良数)   As   良品数量,         
    rtrim(
    convert(varchar(10),
    convert(decimal(10,2),
    (Sum(convert(decimal(18,2),不良数)) --1.0去掉,已转换取小数位
    /Case   when   Sum(convert(decimal(18,2),生产数量)) <=0   then   1   
    Else   Sum(convert(decimal(18,2),生产数量))   end)*100)
    ))+'%'     As   不良率                                         
                                           
    --   Into   #a                                     
    From   #a11(nolock)                                       
    Group   By   日期,批号,料号,版序,作业员,班别 
      

  5.   

    du bu xing a SQL SERVER 2005 shang you qi ta de shu jui ku du shi hao de ,suo yi pai cu SQL SERVER 2005 de 
    wen ti .