【问题标题】:Help with SQL totals and sums帮助处理 SQL 总计和总和
【发布时间】:2011-02-22 23:50:40
【问题描述】:

我有这个 SQL。我不确定这是我需要的,但它确实选择了我需要的所有记录。我现在只需要将它们压缩并汇总唯一日期的计数和数量。

select m.account_tag, m.cmcl_forecast_cleared, m.check_amount,  
a.acct_id, a.acct_no, a.bank_id,  
b.bank_id, b.name  
from ap_master m   
join accounts a on a.acct_id=m.account_tag  
join banks b on b.bank_id=a.bank_id  
where m.cmcl_bank_cleared is null 
order by m.account_tag, m.cmcl_forecast_cleared  

我只想显示四列 Account、Date、Count 和 sum

帐户将是 a.acct_no。
该日期将是该帐户的所有唯一 m.cmcl_forecast_cleared 日期
计数将是那些唯一日期的检查(记录)总数 (cmcl_forecast_cleared)
总和将是唯一日期的总 check_amount (cmcl_forecast_cleared)

我希望这是可以理解的。我不确定我是否需要任何分组

【问题讨论】:

    标签: sql delphi interbase


    【解决方案1】:
    select
      a.acct_no, m.cmcl_forecast_cleared, b.name,
      count(*) as TotalChecks,
      Sum(m.check_amount) as TotalAmount
    from ap_master m   
    join accounts a on a.acct_id=m.account_tag  
    join banks b on b.bank_id=a.bank_id  
    where m.cmcl_bank_cleared is null 
    group by a.acct_no, m.cmcl_forecast_cleared, b.name
    order by a.acct_no, m.cmcl_forecast_cleared, b.name
    

    您可以根据需要按任意数量的列进行分组。

    【讨论】:

    • +1。每次需要将聚合函数与其他字段组合时,都需要按其他字段进行分组。
    • @Shane - 在这种情况下,也只需按 b.name 分组
    猜你喜欢
    • 2021-10-02
    • 2010-11-16
    • 2017-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多