【发布时间】:2014-07-21 08:22:11
【问题描述】:
我正在处理几张桌子。员工表 (tblEmployee)、经理表 (tblManager) 和经理日志表 (tblLog)。在日志表中大约有 10 列。第一列是经理 ID。还有另一列包含要调动的员工的名字,以及该员工应该去哪个部门。以下是该专栏的快照:
Bob- Dept: 7 Meg- Dept: 5
Bob- Dept: 7 Meg- Dept: 5
Bob- Dept: 7 Meg- Dept: 5
Preston- Dept: 1
Martin- Dept: MANG Sue- Dept: MANG Sarah - DEPT: 8
Martin- Dept: MANG Sue- Dept: MANG Sarah - DEPT: 8
Martin- Dept: MANG Sue- Dept: MANG Sarah - DEPT: 8
Isabel- Dept: 6 Mike- Dept: 5
Isabel- Dept: 6 Mike- Dept: 5
Dan- Dept: MANG
Dan- Dept: MANG
如您所见,存在重复的行。建议转移 Bob 和 Meg 的经理有 3 行的 ID。那是因为他在表中有 3 个员工,每个员工占一行。我正在努力仅提取被转移到管理层 (MANG) 或其他部门 (#1-8) 的员工。我编写了一个查询,它获取了我需要的所有信息,但是它获取了日志表中的每个员工,它目前没有过滤掉额外的信息。所以假设我返回 150 行,实际上只有 100 名员工调动和 50 名其他员工出于不同的原因在日志表中。
我试图提出一个查询,该查询获取员工的名字并检查它是否在列中,然后获取员工未来的部门编号(来自 tblEmployee)并检查它是否与日志中的编号匹配柱子。我看过PARTINDEX 和正则表达式,但我不够熟练,无法提出可以达到预期结果的解决方案
【问题讨论】:
-
请显示表格的布局。在你的布局中很难理解什么是列名,什么是列值。
-
如果您无法提出查询,那么至少显示每个表的示例数据以及基于此数据的所需结果。
标签: sql sql-server string string-matching