Sql server 2008 如何按频率订购而不进行聚合?

Sql server 2008 如何按频率订购而不进行聚合?,sql-server-2008,ms-access-2007,Sql Server 2008,Ms Access 2007,概述:比较不同账户代理农产品的日常交易,找出代理和公司持有量之间的差异,仅显示新情况;当前交易中的代码,但不是以前交易中的代码 目标:按最高频率的代码(即苹果)对交易进行排序 当前代码: SELECT Count(CurrentTrade.Code) AS CountOfCode, CurrentTrade.portfolio_code, CurrentTrade.Type, CurrentTrade.Code, sum(CurrentTrade

概述:
比较不同账户代理农产品的日常交易,找出代理和公司持有量之间的差异,仅显示新情况;当前交易中的代码,但不是以前交易中的代码

目标:
按最高频率的代码(即苹果)对交易进行排序

当前代码:

SELECT 
    Count(CurrentTrade.Code) AS CountOfCode, 
    CurrentTrade.portfolio_code, 
    CurrentTrade.Type, 
    CurrentTrade.Code, 
    sum(CurrentTrade.Custodian_holding) AS AgentHolding, 
    sum(CurrentTrade.Company_holding) AS CompanyHolding, 
    sum(CurrentTrade.Difference) AS TotalDifference
FROM 
    CurrentTrade 
    LEFT JOIN PrevTrade 
    ON CurrentTrade.Company_holding = PrevTrade.Company_holding
WHERE 
    PrevTrade.Company_holding) Is Null
GROUP BY CurrentTrade.Code, CurrentTrade.portfolio_code, CurrentTrade.Code, CurrentTrade.Type
ORDER BY count(CurrentTrade.Code);
目前的结果:

 CountOfCode        account_code        Type        Code        AgentHodling        CompanyHolding        TotalDifference
 1                  acc001049        prod        mango        2500                  0        2500
 1                  acc636903        prod        mango        481081.29        481081.285        0.01
 1                  acc179186        prod        mango        453639.61        511285.81        -57646.2
 1                  acc179185        prod        mango        2775               2650        125
 1                  acc170001        prod        grapes       0                     1500        -1500
 1                  acc170000        prod        grapes       2500        0        2500
 1                  acc107104        prod        apple        49797.22        49797.28        -0.06
 1                  acc107103        prod        apple        0        -0.06        0.06
 1                  acc107102        prod        apple        2000        500        1500
 1                  acc107101        prod        apple        0        1500        -1500
 1                  acc001189        prod        apple        0        1090.513        -1090.513
参考:

我收到了这个()的答案,所以这是一个跟进

问题:


是否可以在不汇总所有结果的情况下按频率排序,并且仍然按最高频率(苹果、芒果、葡萄)显示订单,包括相关的账号
如果对order by使用sum,“不能在order by中使用聚合函数”,因此我不确定我是否可以这样做,并且仍然保持帐号分开?

order by
子句拉出到外部查询中,内部查询将计算频率,如下所示:

SELECT * FROM (
SELECT 
    Count(CurrentTrade.Code) AS CountOfCode, 
    CurrentTrade.portfolio_code, 
    CurrentTrade.Type, 
    CurrentTrade.Code, 
    sum(CurrentTrade.Custodian_holding) AS AgentHolding, 
    sum(CurrentTrade.Company_holding) AS CompanyHolding, 
    sum(CurrentTrade.Difference) AS TotalDifference
FROM 
    CurrentTrade 
    LEFT JOIN PrevTrade 
    ON CurrentTrade.Company_holding = PrevTrade.Company_holding
WHERE 
    PrevTrade.Company_holding) Is Null
GROUP BY CurrentTrade.Code, CurrentTrade.portfolio_code, CurrentTrade.Code, CurrentTrade.Type
) ORDER BY CountOfCode ASC

谢谢你的解决方案!我最终创建了两个报告:1)没有组合代码作为摘要,按计数顺序正确;2)有组合代码作为详细信息。