как выбрать записи, где проект назначен для лица, а также записи того же проекта, назначенные другим лицам?

Проект назначается нескольким лицам с разным количеством проектов. Предположим, что проект A назначен как показано ниже:

P1 - Qty 50
P2 - Qty 120
P3 - Qty 75

Моя структура таблицы:

Project - AssignedPerson - AssignedDate - AssignedQty 
ProjectA - P1            - 12/01/2016   - 50
ProjectA - P2            - 12/01/2016   - 120
ProjectA - P3            - 12/01/2016   - 75
ProjectB - P1            - 15/01/2016   - 210
ProjectB - P3            - 16/01/2016   - 90
ProjectC - P2            - 17/01/2016   - 110
ProejctC - P3            - 17/01/2016   - 120

Теперь скажите, что человек P1 вошел в систему и видит свои задания.
Я хочу показать ему записи, как показано ниже —

Project - AssignedPerson - AssignedDate - AssignedQty 
ProjectA - P1            - 12/01/2016   - 50
ProjectA - P2            - 12/01/2016   - 120
ProjectA - P3            - 12/01/2016   - 75
ProjectB - P1            - 15/01/2016   - 210
ProjectB - P3            - 16/01/2016   - 90

Выше список показывает записи для P1, а также записи, которые показывают, сколько кол-во
назначено другим для проектов, назначенных P1.
Как это сделать?

1 ответ

  1. Скажем, у вас должна быть переменная для желаемого человека @person. Тогда ваш запрос будет выглядеть так, если этот человек P1:

    declare @person nvarchar(10) = 'P1'
    select * from TABLE_NAME where AssignedPerson = @person or project in (select project from TABLE_NAME t1 where t1.assignedperson = @person)