selectSql.Append("SELECT ")         selectSql.Append("    Sum( ISNULL(ECTR,0) + ISNULL(WCTR,0) + ISNULL(LCTR,0) + ISNULL(NCTR,0) ) as NUM_SUM, ") 
        selectSql.Append("    ECTR,") 
        selectSql.Append("    cast(cast(ECTR*1.0*100/NUM_SUM as decimal(10,2)) as varchar(50)) +'%'  as E_PER ") 
        selectSql.Append("FROM ") 
        selectSql.Append("    T_SSTT_MONTHLY ")我想用sum 的结果 做除数,但是 提示  NUM_SUM 列名无效 ,怎么解决?谢谢!

解决方案 »

  1.   

    换成
    Sum( ISNULL(ECTR,0) + ISNULL(WCTR,0) + ISNULL(LCTR,0) + ISNULL(NCTR,0) )
      

  2.   


    select       NUM_SUM,ECTR,
            cast(cast(ECTR*1.0*100/NUM_SUM as decimal(10,2)) as varchar(50)) +'%'  as E_PER
    from 
    (
    SELECT 
            Sum( ISNULL(ECTR,0) + ISNULL(WCTR,0) + ISNULL(LCTR,0) + ISNULL(NCTR,0) ) as NUM_SUM,*
            FROM 
            T_SSTT_MONTHLY  )  as T
      

  3.   

    这个是SQL的执行顺序,select 是最后执行的。
      

  4.   


            selectSql.Append("SELECT ")
            selectSql.Append("    *,")
            selectSql.Append("    cast(cast(ECTR*1.0*100/NUM_SUM as decimal(10,2)) as varchar(50)) +'%'  as E_PER ,")
            selectSql.Append("    cast(cast(WCTR*1.0*100/NUM_SUM as decimal(10,2)) as varchar(50)) +'%'  as W_PER ,")
            selectSql.Append("    cast(cast(LCTR*1.0*100/NUM_SUM as decimal(10,2)) as varchar(50)) +'%'  as L_PER ,")
            selectSql.Append("    cast(cast(NCTR*1.0*100/NUM_SUM as decimal(10,2)) as varchar(50)) +'%'  as N_PER ")
            selectSql.Append("FROM ")
            selectSql.Append("    ( ")
            selectSql.Append("SELECT ")
            selectSql.Append("    Sum( ISNULL(ECTR,0) + ISNULL(WCTR,0) + ISNULL(LCTR,0) + ISNULL(NCTR,0) ) as NUM_SUM, ")
            selectSql.Append("    MAKE_DATE,")
            selectSql.Append("    ECTR,")
            selectSql.Append("    NUM_SUM,")
            selectSql.Append("    WCTR,")
            selectSql.Append("    LCTR,")
            selectSql.Append("    NCTR")
            selectSql.Append("FROM ")
            selectSql.Append("    T_SSTT_MONTHLY ) as T ")整理之后的sql是这样,不过执行时错误很多,怎么改那?
      

  5.   

            selectSql.Append("    NCTR")
            selectSql.Append("FROM ") 
    這裡from 前面要有空白