Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.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 如何进行查询以仅获取值范围内有N个数字的结果?_Sql_Ms Access_Join_Multiple Tables - Fatal编程技术网

Sql 如何进行查询以仅获取值范围内有N个数字的结果?

Sql 如何进行查询以仅获取值范围内有N个数字的结果?,sql,ms-access,join,multiple-tables,Sql,Ms Access,Join,Multiple Tables,我正试图从美国农业部食品数据库中提取MS Access 2007中的营养数据,该数据库可在 我需要有NUT_数据中所有营养素的记录。NUT_No。这些记录的值介于“501”和“511”之间。但我希望排除缺少值的不完整记录 目前,婴儿食品香蕉的营养成分从501到511不等,但婴儿食品饮料只有列出的9种营养成分,其他许多营养成分也是如此 作为最后一种手段,我想可以接受所有记录,为缺失值显示null,只要每个食物长描述有11条记录,每个坚果数据一条。营养否或营养定义营养描述(相互对应) //这部分是我

我正试图从美国农业部食品数据库中提取MS Access 2007中的营养数据,该数据库可在

我需要有NUT_数据中所有营养素的记录。NUT_No。这些记录的值介于“501”和“511”之间。但我希望排除缺少值的不完整记录

目前,婴儿食品香蕉的营养成分从501到511不等,但婴儿食品饮料只有列出的9种营养成分,其他许多营养成分也是如此

作为最后一种手段,我想可以接受所有记录,为缺失值显示null,只要每个食物长描述有11条记录,每个坚果数据一条。营养否或营养定义营养描述(相互对应)

//这部分是我的想法尝试的东西,但没有帮助

 EXISTS (SELECT 1
        FROM 
        NUTR_DEF inner JOIN ((FOOD_DES INNER JOIN NUT_DATA ON FOOD_DES.NDB_No=NUT_DATA.NDB_No) INNER JOIN WEIGHT ON FOOD_DES.NDB_No=WEIGHT.NDB_No) ON NUTR_DEF.Nutr_No=NUT_DATA.Nutr_No

            WHERE  count FOOD_DES.Long_Desc = "11"        )
//实验的结束

   ORDER BY FOOD_DES.Long_Desc, NUTR_DEF.SR_Order; 
这是一个数据样本。我只是复制了最重要的专栏。红色不是我想要的,因为它没有全部11种营养素。如果有人认为这会有所帮助,我可以将整个表格粘贴到谷歌文档上


作为起点,确定哪些食物中11种营养素的值都大于0。检查此更简单的
分组依据
查询是否显示正确的项目:

选择ndat.NDB\u编号
从…起
NUT_数据作为数据集
内部连接重量(单位:wt)
在ndat.NDB_编号=wt.NDB_编号上
哪里
洪水营养价值>0
以及‘‘501’、‘502’、‘503’、‘504’、‘505’、‘506’、‘507’、‘508’、‘509’、‘510’、‘511’中的ndat.nur_编号)
和wt.Seq='1'
按数据分组。NDB_编号
有计数(总营养量)=11;
注:您可以使用介于501和511之间的
Val(ndat.Nutr_No)作为Nutr_No限制,这将为您提供更简洁的说明。然而,对表的每一行计算
Val()
,意味着这种方法将放弃索引检索的性能优势。。。因此,查询的版本应该明显较慢


保存该查询并创建一个新的查询,该查询将它连接到基表,以便从其他列获取所需的其他数据。如果您愿意,也可以将其用作子查询而不是命名查询。

作为起点,确定哪些食品的所有11种营养素的值都大于0。检查此更简单的
分组依据
查询是否显示正确的项目:

选择ndat.NDB\u编号
从…起
NUT_数据作为数据集
内部连接重量(单位:wt)
在ndat.NDB_编号=wt.NDB_编号上
哪里
洪水营养价值>0
以及‘‘501’、‘502’、‘503’、‘504’、‘505’、‘506’、‘507’、‘508’、‘509’、‘510’、‘511’中的ndat.nur_编号)
和wt.Seq='1'
按数据分组。NDB_编号
有计数(总营养量)=11;
注:您可以使用介于501和511之间的
Val(ndat.Nutr_No)作为Nutr_No限制,这将为您提供更简洁的说明。然而,对表的每一行计算
Val()
,意味着这种方法将放弃索引检索的性能优势。。。因此,查询的版本应该明显较慢


保存该查询并创建一个新的查询,该查询将它连接到基表,以便从其他列获取所需的其他数据。或者,如果愿意,可以将其用作子查询而不是命名查询。

您应该编辑问题并显示一些示例数据和所需结果。您应该编辑问题并显示一些示例数据和所需结果。ms access不太接受作为子查询加入,但是,将这个查询的结果选择到一个新表中,然后将我的原始查询与这个“临时表”连接起来,是有效的。谢谢ms access不太接受作为子查询的连接,但将此查询的结果选择到一个新表中,然后将我的原始查询与此“临时表”连接,这样做很有效。谢谢
   ORDER BY FOOD_DES.Long_Desc, NUTR_DEF.SR_Order;