Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL查询以统计缺少特定类型事务的特定类型的小部件_Sql_Ms Access 2010 - Fatal编程技术网

SQL查询以统计缺少特定类型事务的特定类型的小部件

SQL查询以统计缺少特定类型事务的特定类型的小部件,sql,ms-access-2010,Sql,Ms Access 2010,我正在MS Access 2010中构建一个SQL查询。商业问题是: 所有类型为“A”的小部件都应进行相应的检查 检查表中“内部”类型的交易记录。但是,一些“A”小部件在检查中还没有“internal”类型的检查事务记录 桌子编写一个SQL查询来计算“a”类型的小部件的数量 缺少“内部”检查事务处理 共有三个表格: 窗口小部件主窗口小部件表 widget_info包含许多widget属性的表,包括widget类型 检查检查记录事务表,其中可能包含每个小部件的多个检查记录。。。其中一个可能属于“内

我正在MS Access 2010中构建一个SQL查询。商业问题是:

所有类型为“A”的小部件都应进行相应的检查 检查表中“内部”类型的交易记录。但是,一些“A”小部件在检查中还没有“internal”类型的检查事务记录 桌子编写一个SQL查询来计算“a”类型的小部件的数量 缺少“内部”检查事务处理

共有三个表格:

窗口小部件主窗口小部件表 widget_info包含许多widget属性的表,包括widget类型 检查检查记录事务表,其中可能包含每个小部件的多个检查记录。。。其中一个可能属于“内部”类型 查询应返回在widget_info表中显示为“a”类型且在inspections表中没有“internal”类型记录的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,谢谢你的建议。我已经尝试过了,但它仍然返回零结果。