【问题标题】:MS Access compare two tables [closed]MS Access比较两个表[关闭]
【发布时间】:2023-03-17 02:44:01
【问题描述】:

我有两张表格,我正在按代表比较销售额,TY 与 LY。在比较这两个表时,我有今年的新代表和去年离开公司的代表。

当我运行查询时,我只会获得仍在公司工作的代表的结果。我想要所有,关于如何去做的任何建议?我尝试创建一个包含所有代表名称的表并创建交流连接,但这不起作用。

【问题讨论】:

标签: sql ms-access comparison


【解决方案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    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    相关资源
    最近更新 更多