sql - MS Access SQL 查询不存在

标签 sql ms-access not-exists

我一直在尝试弄清楚如何返回一个表中的数据而不是另一个表中的数据。我认为外部连接会起作用,但 Access 似乎不允许这样做。

如果 MonthlyTargets_0_SPARTN_qry 中存在记录,我的 SQL 将返回结果,但如果没有记录,则不会返回任何数据。如果没有记录,我想显示一个 0。

我的sql是:

SELECT REF_TestCategory_tbl.CategoryID
    ,MonthlyTargets_0_SPARTN_qry.[Supervisor Id] AS TestOfficerID
    ,Count(MonthlyTargets_0_SPARTN_qry.[Sheet ID]) AS Actuals
    ,MonthlyTargets_0_SPARTN_qry.ComplianceMonth
FROM MonthlyTargets_0_SPARTN_qry
INNER JOIN (
    REF_TestCategory_tbl INNER JOIN REF_TestCatalog_tbl ON REF_TestCategory_tbl.CategoryID = REF_TestCatalog_tbl.TestCategory
    ) ON MonthlyTargets_0_SPARTN_qry.[Test Number] = REF_TestCatalog_tbl.TestID
GROUP BY REF_TestCategory_tbl.CategoryID
    ,MonthlyTargets_0_SPARTN_qry.[Supervisor Id]
    ,MonthlyTargets_0_SPARTN_qry.ComplianceMonth
ORDER BY REF_TestCategory_tbl.CategoryID;

哪个返回:

CategoryID  TestOfficerID   Actuals     ComplianceMonth
    1           3062            26      1/1/2020
    1           3062            6       2/1/2020
    2           3062            2       1/1/2020
    3           3062            2       1/1/2020
    3           3062            1       2/1/2020

如果2月份没有记录,我需要它在Actuals中返回0 谢谢

最佳答案

如果您的“ComplianceMonth”值始终存在,而不管您的相邻数据如何(意味着如果为您的 ComplianceMonth 返回的相邻数据为 NULL),那么您可以执行类似的操作。

    SELECT REF_TestCategory_tbl.CategoryID, 
       MonthlyTargets_0_SPARTN_qry.[Supervisor Id] AS TestOfficerID, 
       coalesce(Count(MonthlyTargets_0_SPARTN_qry.[Sheet ID]),0) AS Actuals,
       MonthlyTargets_0_SPARTN_qry.ComplianceMonth
FROM            dbo.MonthlyTargets_0_SPARTN_qry RIGHT OUTER JOIN
                         dbo.REF_TestCategory_tbl RIGHT OUTER JOIN
                         dbo.REF_TestCatalog_tbl ON REF_TestCategory_tbl.CategoryID = REF_TestCatalog_tbl.TestCategory ON MonthlyTargets_0_SPARTN_qry.[Test Number] = REF_TestCatalog_tbl.TestID
GROUP BY REF_TestCategory_tbl.CategoryID, MonthlyTargets_0_SPARTN_qry.[Supervisor Id], MonthlyTargets_0_SPARTN_qry.ComplianceMonth
ORDER BY REF_TestCategory_tbl.CategoryID

希望这对您有所帮助。

关于sql - MS Access SQL 查询不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60193700/

相关文章:

attributes - Magento:addAttributeToFilter 但忽略没有此属性的产品?

mysql - 努力理解复杂的连接

ms-access - 拆分 MS Access 数据库并将后端存储在 Sharepoint 中?

ms-access - 确保 Access 2000 mdb 上的 SQL-92 到 Access 2010 下的 SQL Server

java - 独立应用程序的理想数据源?

mysql - 多个 NOT EXISTS SQL

mysql - 合并连接并存在于连接表上

sql - 将 mssql openjson 数组类型值结果转换为表?

解决方案 V2 需要 4 个表的 SQL 查询

sql不同列比较