SQL查询以统计缺少特定类型事务的特定类型的小部件
我正在MS Access 2010中构建一个SQL查询。商业问题是: 所有类型为“A”的小部件都应进行相应的检查 检查表中“内部”类型的交易记录。但是,一些“A”小部件在检查中还没有“internal”类型的检查事务记录 桌子编写一个SQL查询来计算“a”类型的小部件的数量 缺少“内部”检查事务处理 共有三个表格: 窗口小部件主窗口小部件表 widget_info包含许多widget属性的表,包括widget类型 检查检查记录事务表,其中可能包含每个小部件的多个检查记录。。。其中一个可能属于“内部”类型 查询应返回在widget_info表中显示为“a”类型且在inspections表中没有“internal”类型记录的widget计数。请注意,检查表可能包括非“内部”类型的每个小部件的多个记录,即有一个“预校准”检查记录或一个“外部”检查记录 我的最佳尝试是:SQL查询以统计缺少特定类型事务的特定类型的小部件,sql,ms-access-2010,Sql,Ms Access 2010,我正在MS Access 2010中构建一个SQL查询。商业问题是: 所有类型为“A”的小部件都应进行相应的检查 检查表中“内部”类型的交易记录。但是,一些“A”小部件在检查中还没有“internal”类型的检查事务记录 桌子编写一个SQL查询来计算“a”类型的小部件的数量 缺少“内部”检查事务处理 共有三个表格: 窗口小部件主窗口小部件表 widget_info包含许多widget属性的表,包括widget类型 检查检查记录事务表,其中可能包含每个小部件的多个检查记录。。。其中一个可能属于“内
SELECT Count(widgets.*) AS count
FROM (widgets
INNER JOIN widget_info
ON widget_info.widget_number = widgets.widget_number)
INNER JOIN inspections
ON inspections.widget_number = widgets.widget_number
WHERE widget_info.type ='A' AND
NOT EXISTS (SELECT 1 FROM inspections WHERE inspections.type <> 'internal')
我在执行查询时得到零计数,尽管我知道有一些小部件缺少“内部”检查
谢谢你抽出时间
Bob确定此查询的问题是NOT EXISTS函数的WHERE子句未包含与小部件表和检查表之间的小部件编号匹配的条件。我对查询进行了如下修改,结果成功了
SELECT Count(widgets.*) AS count
FROM (widgets
INNER JOIN widget_info
ON widget_info.widget_number = widgets.widget_number)
INNER JOIN inspections
ON inspections.widget_number = widgets.widget_number
WHERE widget_info.type ='A' AND
NOT EXISTS (SELECT 1 FROM inspections WHERE inspections.type <> 'internal'
AND inspections.widget_number = widgets.widget_number);
使用左连接inspections@artm,谢谢你的建议。我已经尝试过了,但它仍然返回零结果。