MySQL计数/总和字段

MySQL计数/总和字段,mysql,count,sum,Mysql,Count,Sum,我想做的是一份关于日常金融交易的报告。通过我的SQL查询,我想计算现金交易的总数、总现金价值以及支票的总现金价值。我只想在指定日期执行此操作 下面是我遇到问题的查询片段。这些sum和count命令正在处理表中的所有数据,而不是所选日期的数据 (SELECT SUM(amount) FROM TRANSACTION WHERE payment_type.name = 'cash') AS total_cash, (SELECT COUNT(*) FROM TRANSACTION WHERE pay

我想做的是一份关于日常金融交易的报告。通过我的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_表(这样我可以指定payment_type_name而不是id)时,它会统计现金/支票的所有交易。日期限制似乎消失了


非常感谢您的帮助。

不需要相关子查询,只需使用
分组方式

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

然后,如果需要从中获取类型名称,您可以将结果与
付款类型连接起来。

“而不是所选日期”。。。所选日期?查询的“Where transactionDate='2010-04-10”部分在哪里?我希望类似“payment\u type.name=。。。transactionDate=…'我不确定mysql是否会这样做,但在oracle to sum中,您可以在transactionDate上进行sum(X)分区,您可以发布
SHOW CREATE TABLE TRANSACTION
的输出吗?