Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.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 - Fatal编程技术网

在SQL中将摘要数据用作参数

在SQL中将摘要数据用作参数,sql,ms-access,Sql,Ms Access,我是SQL新手,正在使用Access运行Excel无法真正处理的查询。以下是查询的基本设计: SELECT A.ID, A.Description, A.Location, B.ID, B.Quantity, B.Location FROM A LEFT JOIN B ON A.ID = B.ID 在表B中,位置都是相同的值。我想保留上面的左连接,但将表A中的结果值限制为列B中的位置值。在我看来,这将是一个WHERE子句,其中A.location=maxB.location或类似的内容 有什么

我是SQL新手,正在使用Access运行Excel无法真正处理的查询。以下是查询的基本设计:

SELECT A.ID, A.Description, A.Location, B.ID, B.Quantity, B.Location
FROM A LEFT JOIN B ON A.ID = B.ID
在表B中,位置都是相同的值。我想保留上面的左连接,但将表A中的结果值限制为列B中的位置值。在我看来,这将是一个WHERE子句,其中A.location=maxB.location或类似的内容


有什么想法吗?

如果要将表A中的结果值限制为表B中的位置值,为什么不能简单地使用基于位置的连接呢

可以使用DMax表达式获取B.Location的重复非空值。该表达式可在WHERE子句中用于将行限制为仅具有匹配[Location]的行:

选择A.ID、A.说明、A.位置、B.ID、B.数量、B.位置 从A上的左连接B.ID=B.ID 其中A.位置=DMax[位置],B; 如果您不喜欢使用DMax,因为它是特定于访问的,那么您可以通过以下方式:

选择A.ID、A.说明、A.位置、B.ID、B.数量、B.位置 从A上的左连接B.ID=B.ID 其中A.位置=从B中选择最大[位置];
因为表A有我不想要的所有类型的位置数据。我想根据表B中的位置限制表A返回的内容。这有意义吗?抱歉@hashbrown,不清楚。下面是第二个尝试:因为我想保留A.ID=B.ID但B.location为空的行。基本上,B.Location只有一个值,我想运行一个WHERE子句,将a.Location中的值限制为该值的任何值。就是这样!谢谢,我从来没有遇到过DMax或DMin函数。非常有帮助!
SELECT A.ID, A.Description, A.Location, B.ID, B.Quantity, B.Location
FROM A LEFT JOIN B 
ON A.ID = B.ID
AND A.location = B.location