select AA, BB, CC,
(
select MIN(hehe) from
(
select SUM(YCYL) OVER(order by AA) as hehe FROM 
(
从别的表复杂过来的结果
)
)
) as YCYL,
(
又一个复杂的查询结果
) as sc,
(sc*YCYL) as HSYL
from 表1
where 条件..AA,BB,CC为表1中有的列,YCYL和sc为查询过来并起来的结果,运行正常,
加上(sc*YCYL) as HSYL后说无效列名...
去掉后就正常...请问,这样都是查询过来的两列,想第三列是这两列的乘积,该如何做呐?
多谢多谢~~

解决方案 »

  1.   

    小弟的方法是,

    select MIN(hehe) from 

    select SUM(YCYL) OVER(order by AA) as hehe FROM 

    从别的表复杂过来的结果 


    )*( 
    又一个复杂的查询结果 
    ) as HSYL
    这样就可以,有没有更好的方法呐~~~请教~~
      

  2.   


    没看太细,看看,如下可以不
    select b.*,
       sc*b.ycyl
    from
    (
        select AA,
               BB,
               CC,
               (select MIN(hehe)
                  from (select SUM(YCYL) OVER(order by AA) as hehe
                          FROM (从别的表复杂过来的结果))) as YCYL,
               (又一个复杂的查询结果) as sc
          from 表1
         where 条件..
    ) b
         
      

  3.   

    谢谢楼上的回答,可是这样代码还是会很长....因为调用的地方很多哦..现在一个sql语句已经12.5K了...还是少的情况...
    不能直接相乘么?
      

  4.   

    按照帅哥说的...优化完了是8.25K...还好C#不介意..嘿嘿..加分送分~~~多谢~~有操作权限就做新view了....