【发布时间】:2023-03-17 02:44:01
【问题描述】:
我有两张表格,我正在按代表比较销售额,TY 与 LY。在比较这两个表时,我有今年的新代表和去年离开公司的代表。
当我运行查询时,我只会获得仍在公司工作的代表的结果。我想要所有,关于如何去做的任何建议?我尝试创建一个包含所有代表名称的表并创建交流连接,但这不起作用。
【问题讨论】:
-
我不是!这是很好的信息。我会研究更多,谢谢!
标签: sql ms-access comparison
我有两张表格,我正在按代表比较销售额,TY 与 LY。在比较这两个表时,我有今年的新代表和去年离开公司的代表。
当我运行查询时,我只会获得仍在公司工作的代表的结果。我想要所有,关于如何去做的任何建议?我尝试创建一个包含所有代表名称的表并创建交流连接,但这不起作用。
【问题讨论】:
标签: sql ms-access comparison
如果您想查看两个表中的所有销售代表,那么您需要使用 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
【讨论】: