Sql server sqlservermax&;从3个表中选择最小值

Sql server sqlservermax&;从3个表中选择最小值,sql-server,join,group-by,Sql Server,Join,Group By,下面的Max/Min select可以正常工作,但我还想连接到EntityCode上的表#3(即提供EntityName) 但是,我不确定是嵌套选择连接还是多个连接是路由: SELECT Orders2Buy.EntityCode, MAX (Orders2Buy.Bid), MIN (Orders2Sell.Ask) FROM Orders2Buy INNER JOIN Orders2Sell ON Orders2Buy.EntityCode = Orders2

下面的Max/Min select可以正常工作,但我还想连接到EntityCode上的表#3(即提供EntityName)

但是,我不确定是嵌套选择连接还是多个连接是路由:

SELECT
    Orders2Buy.EntityCode,
    MAX (Orders2Buy.Bid),
    MIN (Orders2Sell.Ask)
FROM
    Orders2Buy INNER JOIN Orders2Sell ON Orders2Buy.EntityCode = Orders2Sell.EntityCode
GROUP BY
    Orders2Buy.EntityCode)
-------结合-------------------

SELECT 
    Entities.EntityName 
FROM 
    Entities 
WHERE 
    Entities.EntityCode = Orders2Buy.EntityCode;

我想一个普通的连接就可以了

SELECT
    Orders2Buy.EntityCode,
    Entities.EntityName,
    MAX (Orders2Buy.Bid) Bid,
    MIN (Orders2Sell.Ask) Ask
FROM
    Orders2Buy 
        INNER JOIN Orders2Sell ON Orders2Buy.EntityCode = Orders2Sell.EntityCode
        INNER JOIN Entities on Entities.EntityCode = Orders2Buy.EntityCode
GROUP BY
    Orders2Buy.EntityCode, Entities.EntityName

这就是你要找的吗?

我想普通连接就可以了

SELECT
    Orders2Buy.EntityCode,
    Entities.EntityName,
    MAX (Orders2Buy.Bid) Bid,
    MIN (Orders2Sell.Ask) Ask
FROM
    Orders2Buy 
        INNER JOIN Orders2Sell ON Orders2Buy.EntityCode = Orders2Sell.EntityCode
        INNER JOIN Entities on Entities.EntityCode = Orders2Buy.EntityCode
GROUP BY
    Orders2Buy.EntityCode, Entities.EntityName

这就是你要找的吗?

看看这个看看这个谢谢,我不知道要把它放在第二组中,所以无法让它工作。FWIW I(理论上)不明白,如果你有一个容易理解的答案,为什么第二个子句是必要的。这是一个SQL规则。如果你仔细想想,这是有道理的。如果要进行聚合,则必须基于一个公共对象(可以是单个字段或一组字段)聚合值。否则,SQL不知道如何将事物聚合在一起。MAX(Orders2Buy.Bid)分组结果将根据Orders2Buy.EntityCode仅给出基于合并EntityCode的最大出价。谢谢,我不知道如何将其放入第二组,因此无法使其工作。FWIW I(理论上)不明白,如果你有一个容易理解的答案,为什么第二个子句是必要的。这是一个SQL规则。如果你仔细想想,这是有道理的。如果要进行聚合,则必须基于一个公共对象(可以是单个字段或一组字段)聚合值。否则,SQL不知道如何将事物聚合在一起。根据Orders2Buy.EntityCode对MAX(Orders2Buy.Bid)分组的结果将仅给出基于合并EntityCode的最大出价。