如何 select 记录一个项目分配给一个人的位置以及分配给其他人的同一项目的记录?
how to select records where a project is assigned for a person and also records of same project assigned to other persons?
一个项目分配给多人,每个人的项目数量不同。假设项目A分配如下:
P1 - Qty 50
P2 - Qty 120
P3 - Qty 75
我的Table结构是:
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)
一个项目分配给多人,每个人的项目数量不同。假设项目A分配如下:
P1 - Qty 50
P2 - Qty 120
P3 - Qty 75
我的Table结构是:
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)