0
- 局的查询,
- T1为谁了课程
- T2的数量董事会下的员工数量课程,该分局采取
- T3每个首长
我想补充那花费的总奖金,每局的总奖金的比例
其计算公式为(t3/total sum of t3) * 100
这是查询:
with cte1 as
(
select
vwemployee.directorateName,
count(distinct vwemployeeCourse.employeeId) as t1
from
vwemployee, vwemployeeCourse
where
vwemployee.directorateName = vwemployeeCourse.directorateName
group by
vwemployee.directorateName
), cte2 as
(
select
vwemployee.directorateName,
count(vwemployee.directorateName) as t2
from
vwemployee, employeeCourse
where
vwemployee.Id = employeeCourse.employeeId
group by
vwemployee.directorateName
), cte3 as
(
select
vwemployeeCourse.directorateName,
sum(vwCourse.cost) as t3
from
vwemployeeCourse, vwCourse
where
vwemployeeCourse.courseId = vwCourse.Id
group by
vwemployeeCourse.directorateName
)
select
cte1.directorateName, cte1.t1, cte2.t2, cte3.t3
from
cte1
inner join
cte2 on cte1.directorateName = cte2.directorateName
inner join
cte3 on cte2.directorateName = cte3.directorateName
到目前为止,我已经学会了如何查询组合在一起,但我想学习如何使用上面的操作。
[踢坏的习惯:使用旧式JOIN](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx ) - 在ANSI - ** 92 ** SQL标准中,旧式*逗号分隔的表*样式列表被替换为* proper * ANSI'JOIN'语法(** mor并且它的使用不受欢迎 –
每次我使用join时,我都会得到错误的输出结果,但是如果可以的话,你可以自由地重新设计查询,并且告诉我,因为我是一周的SQL初学者。 –