2015-07-21 3 views
0

Я работаю с таблицей, которая хранит смещаться информацию для сотрудников:Основная информация о SQL-таблице?

enter image description here

Моя цель состоит в том, чтобы создать новое представление или запрос, который показывает сводку для информации:

enter image description here

Я думаю, что мне нужен какой-то тип запроса OLAP, может быть, группа с помощью свертки ...

Я могу получить некоторую информацию с помощью группы подобным образом, но по-прежнему необходимо способ объединить его с исходной таблицей, чтобы он по-прежнему показывал дополнительную информацию, такую ​​как имя. Использование SQL Server.

SELECT employee,[week], sum(regular), sum(overtime), 
     sum(regular_pay), sum(overtime_pay), sum(regular) + sum(overtime), 
     sum(regular_pay) + sum(overtime_pay) FROM shift_details GROUP BY employee, [week] 

ответ

0

В прошлом при создании форматированных таблиц в SQL для отчетов я использовал метод сортировки, основанный на новом столбце.

E.G.

SELECT employee, week, regular, overtime, reg_pay, ot_pay, regular + overtime AS total_hours, reg_pay + ot_pay AS total_pay, 1 AS sort_by FROM shift_details 
UNION ALL 
SELECT employee,[week], sum(regular), sum(overtime), 
     sum(regular_pay), sum(overtime_pay), sum(regular) + sum(overtime), 
     sum(regular_pay) + sum(overtime_pay), 2 AS sort_by FROM shift_details GROUP BY employee, [week] 
ORDER BY employee, week, sort_by 

... и т.д. ...

Если вы хотите, чтобы пропустить "sort_by", просто обернуть запрос, как это ...

SELECT 
    employee, week, regular, overtime, reg_pay, ot_pay, total_hours, total_pay 
FROM 
    (
    ... query above without the "ORDER" statement. 
) AS inner_query 
ORDER BY employee, week, sort_by