我有两张桌子,我比较代表销售,TY与LY。在比较两个表格时,我今年有新的代表和去年离开公司的代表。
当我运行查询时,我只会获得仍在公司的代表的结果。我想要所有,有关如何通过这样做的任何建议?我尝试创建一个包含所有reps名称并创建ac连接的表,但这不起作用。
答案 0 :(得分:1)
如果要查看两个表中的所有销售代表,那么您将需要使用OUTER JOIN。遗憾的是,Access SQL不直接支持FULL OUTER JOIN构造,因此您需要通过两个LEFT JOIN的UNION来模拟它。
例如,给定表[LY] ......
SalesRep TotalSales
-------- ----------
OldGuy 3000
SameGuy 5000
...和[TY] ......
SalesRep TotalSales
-------- ----------
NewGuy 2000
SameGuy 6000
...查询
SELECT
TY.SalesRep,
TY.TotalSales AS TY_Sales,
Nz(LY.TotalSales, 0) AS LY_Sales
FROM
TY LEFT JOIN LY ON TY.SalesRep = LY.SalesRep
UNION ALL
SELECT
LY.SalesRep,
0 AS TY_Sales,
LY.TotalSales AS LY_Sales
FROM
LY LEFT JOIN TY ON TY.SalesRep = LY.SalesRep
WHERE TY.SalesRep IS NULL
返回
SalesRep TY_Sales LY_Sales
-------- -------- --------
NewGuy 2000 0
SameGuy 6000 5000
OldGuy 0 3000