Суммирование одного значения таблицы и группирование его по одному значению другой таблицы - PullRequest
1 голос
/ 02 ноября 2011

У меня есть две таблицы.

Таблица 1: Фактические данные

Таблица всех занятых и сколько часов они проработали в данном месяце

|  ID  |  empID  |  hours  |  Month  |
--------------------------------------

Таблица 2:

Таблица целей, у которой есть часовая цель в месяц. Целевой показатель относится к сумме, которой должна соответствовать сумма всех часов, отработанных сотрудниками.

|  ID  |  hours target  |  Month  |
-----------------------------------

Можно ли вернуть сумму всех часов таблицы 1 с целью таблицы 2, сгруппировать ее по месяцам и вернуть в одном наборе данных?

Пример

|  Month | Actual Hours | hours target  | 
-----------------------------------------
|    1   |      320     |      350      |

и т.д.

Надеюсь, это достаточно ясно, и большое спасибо за рассмотрение вопроса.

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011
WITH 
    t1 AS (SELECT mnth, targetHours FROM tblTargetHours),
    t2 AS (SELECT mnth, sum(hours) AS totalhours FROM tblEmployeeHours GROUP BY mnth)
SELECT t1.mnth, t2.totalhours, t1.targethours
FROM t1, t2
WHERE t1.mnth = t2.mnth

результаты:

 mnth   totalhours  targethours
 1  135 350
 2  154 350
 3  128 350
2 голосов
/ 02 ноября 2011

Это должно работать:


SELECT t.[month], sum(a.[hours]) as ActualHours, t.[hourstarget]
FROM [TargetTable] t
JOIN [ActualsTable] a on t.[month] = a.[month]
GROUP BY t.[month], t.[hourstarget]

Написано простым английским языком, вы говорите: «Дайте мне сумму всех накопленных часов, сгруппированных по месяцам (а также включите целевые часы для этого месяца)».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...