Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Суммирование в select  [new]
nambervan
Member

Откуда:
Сообщений: 1
Привет) Я немного новичок, столкнулась с препятствием. База - MS SQL 2008.

Есть база с сотрудниками, у каждого сотрудника 15 компетенций с оценками. Из этой базы по фильтру (то есть по айдишнику руководителя) подтягиваются его прямые подчиненные в таком виде:

1. Компетенция1
1.1. Подкомпетенция1 x y z
1.2. Подкомпетенция2 x y z
1.3. Подкомпетенция3 x y z

2. Компетенция2
2.1. Подкомпетенция1 x y z

Где x, y и z - это оценки.
Задача очень проста - по x и y сделать суммирование.

Но есть сразу несколько нюансов:
1. Для каждого сотрудника сразу выводятся все компетенции в запросе.
То есть схема такая:
PID CompID Code Points1 Points2 Points3
где PID - это айдишник человека, CompID - компетенции, а дальше понятно. Например:

1 1 Лидерство 1 2 3
1 2 Влияние 1 2 3
2 1 Лидерство 1 2 3
2 2 Влияние 1 2 3
2 3 Еще что-то 1 2 3

2. Использую группировку. Но ругается на то, что группировать по текстовым нельзя. Соответственно пишу 2 разных запроса - один только по подсчету оценок, второй - по выводу этих самых компетенций.

3. Все данные должны быть в одном запросе. Эта процедура потом передает все в сервис вывода отчетов в Visual Studio.

4. Самое важное, что надо получить не просто суммирование, а среднюю оценку с определенным шагом. То есть там еще и очень хитрое округление.

Не доходя еще до кода (там просто один селект и много подтягиваемых таблиц), сразу задаю вопрос: как это решить с точки зрения логики и SQL? Ничего в голову не приходит.
26 июл 12, 23:55    [12922432]     Ответить | Цитировать Сообщить модератору
 Re: Суммирование в select  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
nambervan
2. Использую группировку. Но ругается на то, что группировать по текстовым нельзя. Соответственно пишу 2 разных запроса - один только по подсчету оценок, второй - по выводу этих самых компетенций.
Группируйте по ИД, потом ещё раз джойните таблицу и выводите текст.
27 июл 12, 00:01    [12922450]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить