我有以下查询,我想过滤掉某些代码进行删除。这是一个工资单程序,根据运行它的用户,它应该只允许删除用户列表下的员工:
IEnumerable<int> employeeIdList; <----contains employee Ids under a certain user
var processDataTemps = tempProcessDataService.GetAllProcessDataTemps();
以上查询的示例结果
Code Name U_Employee_ID U_month U_PD_code U_Amount U_Balance U_taxyear
0 0 1 2 SYS037 24308.500000 0.000000 2013
1 1 1 2 SYS014 50470.000000 0.000000 2013
10 10 8 2 SYS024 7541.000000 0.000000 2013
13 13 7 2 SYS037 7541.000000 0.000000 2013
17 17 7 2 SYS024 7541.000000 0.000000 2013
我的问题是如何修改processDataTemps查询以仅返回IEnumerable employeeIdList中包含的员工ID的代码(Code
列)?
IE中。这样,如果employeeIdList仅包含1和7,则修改后的processDataTemps查询应返回Code
值0,1和13和17。
(使用SQL Server 2008)
答案 0 :(得分:1)
假设您使用的是C#:
var processDataTemps = tempProcessDataService.GetAllProcessDataTemps()
.Where(d => employeeIdList.Contains(d.U_Employee_ID))
.Select(d => d.Code);