select cc1.empno as empno,left(convert(varchar(10),cc1.yymmdd,112),6) as yymm,sum(cc1.times)
from
(select aa1.empno as empno,aa1.yymmdd as yymmdd,sum(aa1.times+aa1.addworktimes) as times from hr_leavedetail aa1,hr_leavemaster bb1
where aa1.id=bb1.id and bb1.leavetype='病假'
group by aa1.empno,aa1.yymmdd ) cc1
group by empno,yymm
提示:
Server: Msg 207, Level 16, State 3, Line 1
Invalid column name 'yymm'.
按我的理解是这个列名是可以成立的,这是怎么回事??
------解决思路----------------------
SELECT 大约是倒数第二步,GROUP BY的时候还没有呢
ORDER BY 的时候才使用得了
------解决思路----------------------
改成
select cc1.empno as empno,left(convert(varchar(10),cc1.yymmdd,112),6) as yymm,sum(cc1.times)
from
(select aa1.empno as empno,aa1.yymmdd as yymmdd,sum(aa1.times+aa1.addworktimes) as times from hr_leavedetail aa1,hr_leavemaster bb1
where aa1.id=bb1.id and bb1.leavetype='病假'
group by aa1.empno,aa1.yymmdd ) cc1
group by empno,left(convert(varchar(10),cc1.yymmdd,112),6)
------解决思路----------------------
把 left(convert(varchar(10),cc1.yymmdd,112),6) as yymm 放在子查询中去。
或者再外层再套一层 select ,就是有点麻烦 。