2011-02-22 88 views
0

我有这个SQL。林不知道这是我需要的,但它确实选择我需要的所有记录。我现在只需要浓缩它们,并计算独特日期的计数和金额。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 

我只想显示四列帐号,日期,数量,以及总结

的账户就可以a.acct_no。
日期将用于该帐户的所有独特m.cmcl_forecast_cleared日期
计数将是那些独特的日期检查(记录)总没有(cmcl_forecast_cleared)
总和将是托马斯•总check_amount独特的日期(cmcl_forecast_cleared)

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

回答

5
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 

您可以根据需要分组尽可能多的列。

+0

+1。每次需要将聚合函数与其他字段组合时,都需要按其他字段进行分组。 – 2011-02-22 23:58:23

+0

即时通讯对不起,我的坏....我需要b.name以及 – IElite 2011-02-23 00:53:16

+0

@Shane - 在这种情况下,只是由b.name组以及 – RichardTheKiwi 2011-02-23 00:57:41