如何选择为人员分配项目的记录以及分配给其他人的同一项目的记录



一个项目被分配给多个人,每个人员都有不同的项目数量。假设项目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 的项目的其他人。如何做到这一点?

你应该有一个针对所需人的变量,比如说@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)

最新更新