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

Проект назначается нескольким лицам, каждый с разным количеством проекта. Предположим, что проект 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, а также записи, показывающие, сколько qty назначено другим для проектов, назначенных для P1. Как это сделать?

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)
Другие вопросы по тегам