MySQL计数/求和字段

时间:2010-05-02 12:38:38

标签: mysql count sum

我想要实现的是每日金融交易的报告。通过我的SQL查询,我想计算现金交易总数,总现金价值和支票相同。我只想在指定日期这样做。

以下是我遇到问题的查询片段。这些sum和count命令正在处理表中的所有数据,而不是处理选定的日期。

(SELECT SUM(amount) FROM TRANSACTION WHERE payment_type.name = 'cash') AS total_cash,
(SELECT COUNT(*) FROM TRANSACTION WHERE payment_type.name = 'cash') AS total_cash_transactions

很抱歉,如果我没有足够的细节,因为我没有时间。如果您需要更多信息,请询问..

干杯。

更新: 我已经在布局和结果上发布了一些更多信息,我将在这里: www.conorhackett.com/sql/transaction.html

问题在于,当我加入payment_table时(所以我可以指定payment_type_name而不是id)它会计算现金/支票的所有交易。日期限制似乎消失了。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:3)

不需要相关子查询,只需使用group by

select
 t.payment_type_id as type_id
,sum(t.amount) as total_cash
,count(*) as total_cash_transactions
from TRANSACTION t
where t.date = '2010-05-01'
group by t.payment_type_id

如果您需要从那里获取类型名称,则可以将结果与payment_type结合。