SQL:按位置比较订单与所有订单的平均值

SQL:按位置比较订单与所有订单的平均值,sql,sql-server,average,outer-join,Sql,Sql Server,Average,Outer Join,我试图显示每个位置的平均订单量,并显示该位置有多少订单的值大于所有位置的平均值。我尝试使用子查询进行比较,但Get无法对包含聚合或子查询的表达式执行聚合函数。好的,然后我可以对子查询进行外部应用,并对其进行比较,但它不会绑定值。我想不出来,需要一些帮助。以下是我的最新查询: SELECT PUE.LocID, PUE.Name, IsNull(sum(PUOS.Quantity),0) as [Quantity], AVG((PUOS.Quantity *

我试图显示每个位置的平均订单量,并显示该位置有多少订单的值大于所有位置的平均值。我尝试使用子查询进行比较,但Get无法对包含聚合或子查询的表达式执行聚合函数。好的,然后我可以对子查询进行外部应用,并对其进行比较,但它不会绑定值。我想不出来,需要一些帮助。以下是我的最新查询:

SELECT 
    PUE.LocID, 
    PUE.Name, 
    IsNull(sum(PUOS.Quantity),0) as [Quantity], 
    AVG((PUOS.Quantity * PUOS.UnitPrice)) AS [Avg Order Value], 
    sum(
        case when (PUOS.Quantity * PUOS.UnitPrice) > 
                AVG((Quantity.LocAvg * UnitPrice.LocAvg)) Then 1 
        else 0 end) 
    AS [Greater Loc Avg]
FROM Locations PUE
    OUTER APPLY (select AVG((Quantity * UnitPrice)) as Avg from Sales
                    WHERE CONVERT(date,SaleDate) <= '2014-11-30' 
                        AND PackageID <> 999  
                        AND LocID > 7598 
                        AND LocID < 7622) LocAvg
    LEFT OUTER JOIN Sales PUOS 
        ON PUOS.LocID = PUE.LocID and 
            CONVERT(date,PUOS.SaleDate) <= '2014-11-30' 
                AND PUOS.PackageID <> 999  
            WHERE PUE.LocID > 7598
                AND PUE.LocId < 7622
                AND PUE.GroupID = 473
GROUP BY PUE.LocID, PUE.Name
ORDER BY PUE.LocID, PUE.Name;
这不起作用,因为:无法绑定多部分标识符Quantifier.LocAvg。
无法绑定多部分标识符UnitPrice.LocAvg。我尝试使用Avg.LocAvg,它会给出相同的错误。我相信有一种更简单的方法可以做到这一点,但我没有想到,我的谷歌浏览器也帮不上忙。

NoDisplayName是正确的,我尊重别名。。。我刚刚用LocAvg.Avg替换了AVGQuantity.LocAvg*UnitPrice.LocAvg,效果很好。我觉得自己很愚蠢

from子句中没有Quantity,既不是表也不是别名。看起来Quantity和UnitPrice是列名Quantity和UnitPrice是列名。。。我想我没听懂。那么你就不能使用Quantity.LocAvg,它就像Columnname.Columnname一样,这是不允许的。它应该是表别名或表名点列名,如tablename.columnnameMan,我知道。。。我早该抓到的。谢谢你的名字!