У меня есть запрос из 4-х колонкаКак рассчитать процент в SQL Server 2008
- директората,
- t1 для числа сотрудников под дирекцией, которые принимали курсы
- t2 для численности курсы, директорат принял
- t3 на общий приз, который проводит в каждой дирекции
Я хочу, чтобы добавить t4
за процент от общего выигрыша каждой дирекции
Формула (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 'JOIN' синтаксис в ANSI - ** 92 ** SQL Standard (** mor менее 20 лет ** назад), и его использование не рекомендуется –
каждый раз, когда я использую соединение, я получаю неправильный вывод, но вы можете перепроектировать запрос, если можете, и показать мне, как я начинаю с нуля на SQL. –