2016-11-16 1 views
0

Мой мозг заблокирован по следующей проблеме.
Это для Bi Publisher отчет
Пользователи могут выбрать один или несколько сотрудников имена из нескольких выберите в раскрывающемся списке например, Джон, Питер, Энн ...
В таблице ЕМР мы имеем:Группа и сумма на нескольких идентификаторах

emp_id | emp_name 
--- 
1  | John 
2  | Peter 
3  | Ann 

Таблица worklimit

emp_id | limit | from_date | to_date 
--- 
1 |  35 | 04-jul-2016 | 08-jul-2016 
1 |  15 | 11-jul-2016 | 15-jul-2016 
2 |  40 | 04-jul-2016 | 08-jul-2016 
2 |  20 | 01-aug-2016 | 05-aug-2016 
3 |  27 | 04-jul-2016 | 08-jul-2016 

Так что результат я хочу, это общая сумма (лимит) для выбранного сотрудника

, например, John + Ann 77
или John + Ann + Peter = 137
Это только первый шаг. Мне нужно также суммировать значения som из третьей таблицы, и мне нужно выбрать диапазон дат, и он должен быть сгруппирован по неделям или месяцам, чтобы сделать барчарт.

Могут ли некоторые из вас умные мозги там указывать меня в правильном направлении?

ответ

0

Попробуйте это:

SELECT SUM(A.limit) FROM 
( 
    SELECT SUM(limit) limit,emp_name 
    FROM worklimit 
    JOIN Emp ON Emp.emp_id = worklimit.emp_id 
    GROUP BY emp_name 
) A 
WHERE emp_name IN ('John','Peter','Ann') 
+0

В этой базе данных пользователей ничего о emp_id не знаю. Это всего лишь внутренний идентификатор базы данных. Итак, где должно быть emp_name в (John, Peter, Ann) –

+0

Отлично. Благодарю. Теперь я должен добавить другие варианты и группы и посмотреть, как далеко я доберусь до того, как снова застрял. –

+0

@IdarKlubbenes Что вы сказали о выборе пользователем имен, совершенно неправильно. Пользователю не нужно знать об идентификаторе, но приложение, в котором они могут выбрать одного или нескольких сотрудников, ДОЛЖНО знать об идентификаторах. Вы можете легко иметь двух сотрудников с именем Ann - и у пользователя должен быть способ выбора между ними. (Если это не идентификатор, то это должен быть другой столбец или комбинация столбцов, которые идентифицируют сотрудника UNIQUELY - например, имя, отдел и дату рождения или аналогичные). – mathguy