[英]How to get records from both tables using ms access query
我在Access中有2個表
我想顯示與雇員薪水表鏈接的雇員表中的所有雇員,以鏈接兩個表,兩個表中的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.