2015-03-12 2 views
0

Я следующий запрос SQL сервера:граф группы в составе запроса SQL Server

SELECT G.StyleID, 
G.Size, Count(*) As 'Count', 
G.PropertyID FROM TBL_Garment G 
LEFT OUTER JOIN TBL_EmployeeJob ON TBL_EmployeeJob.ID = G.EmployeeJobID 
LEFT OUTER JOIN TBL_DepartmentJob ON TBL_DepartmentJob.ID = TBL_EmployeeJob.DepartmentJobID 
LEFT OUTER JOIN TBL_Department ON TBL_Department.ID = TBL_DepartmentJob.DepartmentID 
LEFT OUTER JOIN TBL_Division ON TBL_Division.ID = TBL_Department.DivisionID 
LEFT OUTER JOIN TBL_Job ON TBL_Job.ID = TBL_DepartmentJob.JobID 
WHERE G.EmployeejobiD IS NOT NULL 
AND TBL_Division.ID = N'1' 
AND TBL_Department.ID = N'1' 
AND TBL_Job.ID = N'1' 
AND G.PropertyID = 1 
GROUP BY G.StyleID, G.Size, G.PropertyID 
ORDER BY G.StyleID 

и здесь результаты, возвращенный этот запрос:

enter image description here

Теперь мне нужно 2 дополнительных столбца в этой таблице:

Один из них - сумма счета по StyleID (As Total), а другая - Count/Total.

Я уверен, что могу получить счет/Итого самостоятельно, но не знаю, как получить столбец Total, или даже если это возможно.

Ниже приведен вариант, как я хотел бы таблицу быть:

enter image description here

ответ

0

Вы можете использовать оконную функцию:

sum([Count]) over (partition by [StyleID]) 

Убедитесь, что он достаточно хорош для вас на достижение максимальной эффективности Разумеется.

+0

Можете ли вы привести мне пример того, как включить это, я получаю «Тип данных операнда varchar недействителен для оператора сумм». – Alex

+1

@Alex Вы серьезно пытаетесь сказать мне, что ваш столбец 'Count' является' varchar'? : D – Luaan

+0

@ Liaan, я не могу понять, как это может быть, поскольку он только делится в запросе? – Alex