2010-05-02 80 views
3

我試圖實現的是每日金融交易報告。我想用我的SQL查詢來計算現金交易總數,總現金價值和支票的總數。我只想在指定的日期執行此操作。MySQL計數/總計字段

這是查詢的一個片段,我遇到了麻煩。這些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)它計算所有交易的現金/支票。日期限制似乎消失了。

任何幫助表示讚賞。

+0

「而不是選定的日期」......選擇日期? – aioobe 2010-05-02 12:43:40

+0

'WHERE transactionDate ='2010-04-10'查詢的一部分在哪裏?我希望像'payment_type.name = ... AND transactionDate = ...' – extraneon 2010-05-02 12:45:13

+0

我不確定如果mysql做到這一點,但在甲骨文總結所有日子,你可以做一個總和(X)分區transactionDate – dangerstat 2010-05-02 12:47:35

回答

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的結果,如果你需要從那裏得到的類型名稱。