繁体   English   中英

如何使用ms访问查询从两个表中获取记录

[英]How to get records from both tables using ms access query

我在Access中有2个表

  1. tbl_Master_Employess
  2. tbl_Emp_Salary

我想显示与雇员薪水表链接的雇员表中的所有雇员,以链接两个表,两个表中的ID为coluqEmpID

在第二张表中,我有一个日期列。 我需要一个查询,该查询应使用特定日期从两个表中获取记录

我尝试了以下查询:

select coluqEID as EmployeeID , colEName as EmployeeName,"" as Type, "" as Amt
from tbl_Master_Employee 
union Select  b.coluqEID as EmployeeID, b.colEName  as EmployeeName, colType as Type, colAmount as Amt 
      from tbl_Emp_Salary a, tbl_Master_Employee b  
      where a.coluqEID = b.coluqEID and a.colDate = #12/09/2013# 

但是,它显示重复项。

查询4

EmployeeID  EmployeeName    Type    Amt
1           LAKSHMANAN      
1           LAKSHMANAN      Advance 100
2           PONRAJ      
2           PONRAJ          Advance 200
3           VIJAYAN     
4           THIRUPATHI      
5           VIJAYAKUMAR     
6           GOVINDAN        
7           TAMILMANI       
8           SELVAM      
9           ANAMALAI        
10          KUMARAN 

我将如何重写查询以避免重复,或者不显示重复的另一种方式是什么?

查询的问题是,当您想要的是联接时,您正在使用联合。 工会首先要列出所有员工的第一部分:

select coluqEID as EmployeeID , colEName as EmployeeName,"" as Type, "" as Amt from tbl_Master_Employee

然后将所有具有特定日期薪水的员工记录添加到该列表中。

Select  b.coluqEID as EmployeeID, b.colEName  as EmployeeName, colType as Type, 
colAmount as Amt 
from tbl_Emp_Salary a, tbl_Master_Employee b  
where a.coluqEID = b.coluqEID and a.colDate = #12/09/2013#

您的目标是获取所有员工的清单,并且仅显示具有特定日期的员工的薪资信息吗? 一些样本数据将很有用。 在这里假设数据: SQL Fiddle此查询应创建所需的内容。

Select a.coluqEID as EmployeeID, colEName as EmployeeName, 
       b.colType as Type, b.colAmount as Amt
FROM tbl_Master_Employees as a 
LEFT JOIN (select coluqEID, colType, colAmount FROM tbl_EMP_Salary 
           where colDate = '20130912') as b ON a.coluqEID = b.coluqEID;

第一步是创建一个选择,该选择将按日期获得您想要的薪水。 然后,您可以像执行单独的查询一样对此进行连接。 之所以使用LEFT JOIN是因为您想要来自一侧的所有记录(员工),而只希望来自另一侧的符合您条件的记录(工资)。

我认为您需要加入,但是关于唯一名称的问题。

select **DISTINCT** coluqEID as EmployeeID 

添加唯一运算符将仅给出唯一返回的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM