2014-06-17 5 views
-3

я использую 3 таблицы: проекты, project_manager и project_employeeMutilple SELECT, в одном запросе

проекты

- project_id (int, PK) 
- project_name 

project_manager

- project_id (int, PK) 
- manager_id (int, PK) 

project_employee

- project_id (int, PK) 
- employee_id (int, PK) 

Предположим, что менеджер в настоящее время вошли в систему (так что мы знаем, что его ID), что я пытаюсь сделать, это написать запрос, который будет отображать сетки вид, показывающий:

project_id, project_name и количество сотрудников в проекте,

, например:

Project ID    Project Name     Number of employees 
    1     Test Project       3 
    2     Government Fund      5 

Так что я пробовал:

SELECT COUNT (*) AS employee_number, NULL AS Unnecessary_Column 
FROM [project_employee] 
WHERE project_id = @pID 
UNION 
SELECT [projects].project_id, [projects].project_name 
FROM [projects], [project_manager] 
WHERE [project_manager].project_id = [projects].project_id AND [project_manager].mag_id = @mID 

но результат не так, что я ожидал ... что я получаю с моим запросом на 2 колонки employee_number и Unnecessary_Column с перепутались данных.

+0

Какой результат вы ожидаете и что вы получаете взамен? – ElGavilan

+0

@ElGavilan В результате я хочу ответить на вопрос, что я получаю с моим запросом: 2 столбца employee_number и Unnecessary_Column с испорченными данными. –

+0

Почему люди проголосовали за это и хотят закрыть его, что-то не так с моим вопросом? –

ответ

1

Попробуйте этот запрос вместо

SELECT   projects.project_id, 
       projects.project_name, 
       count(*) as NumberOfEmployees 
FROM    projects 
INNER JOIN  project_manager manager ON projects.project_id = manager.project_id 
INNER JOIN  project_employee emp ON projects.project_id = emp.project_id 
WHERE   manager.manager_id = @mId    
GROUP BY   projects.project_id,projects.project_name 
+0

всегда дает пустой результат, вы можете проверить его еще раз? –

+1

Извините, моя ошибка. Отредактирован запрос –

Смежные вопросы