如何根据表A中的字段过滤掉表B中的记录?

时间:2014-06-18 15:51:03

标签: sql teradata

因为它可能是相关的,我使用的DBMS是Teradata。

我有两个名为表A和表B的表。表A包含员工个人和公司数据(公司发行的ID,姓名,薪酬类型等),表B 包含有关每个员工持有或正在持有的工作的信息。两个表的主键是员工公司发行的ID号。

目前,我正在尝试编写一个部分需要检索员工当前职位的查询。 这似乎应该很容易,特别是因为表B存储"有效"日期和"到期"但是,每个工作的日期都存在问题。 在我工作的公司中,有两种不同的系统用于跟踪员工。每个系统都由人力资源代码识别。 每个系统的代码以及该系统中包含的员工如下:

  • 如果您在非管理职位的零售店工作,您的 系统由代码" 1"。
  • 标识
  • 如果你在一家零售店工作 管理职位或您为企业工作,您的系统是 由代码" 2"。
  • 识别

表B中的每条记录都有一个字段,表明特定工作与哪个人力资源系统相关联。

偶尔,在管理职位的商店工作的人可能需要在代码所标识的系统中记录一个" 1"为了能够访问 他们需要一些商店级别的系统来完成他们的工作。发生这种情况时,另一个作业记录将添加到表B中,该员工与系统" 1"相关联。在这种情况下,对于该特定员工,表B中的两个最新记录将对应 他们在公司内的实际位置,而另一个将是为他们创造的额外记录。此外,这些记录通常具有有效的"日期晚于"有效"员工实际工作的日期。

在我的查询中,我需要从表B中获得每个员工的实际工作。众所周知,每个真正的系统都是" 1"员工是每小时,而每个人都在 系统" 2"有薪水。表A有一个字段,表示每个员工当前的薪资类型。

所以,基本上,对于我的查询中包含的每个员工,我需要过滤掉员工拥有系统的任何情况" 1"记录在表B中,而表A表示 在计算员工的实际当前职位时,员工已领薪并不包括在内。

我为文字的墙壁道歉"在这里,但我觉得这个问题相当复杂,所以我想确保你知道所有相关的细节。

不可否认,我还在学习SQL,所以如果有任何构造或汇总功能可以提供帮助,请告诉我。

感谢您的时间。

0 个答案:

没有答案