Mysql根据该列的列组中的值查询sum

时间:2014-06-27 20:38:49

标签: mysql sql group-by sum

我是一个mysql新手,这里需要一些sql查询的帮助,我不能理解。

我目前有一个表Transact包含这样的内容:

Paytype Amount  Date
Cash    100.0   2013-08-01
Visa    50.00   2013-09-2
Check   50.00   2013-11-12
Cash    75.00   2013-12-01
Cash    50.00   2013-12-19
Visa    100.00  2014-3-01
Cash    20.00   2014-5-20

根据交易日期订购的金额和支付类型,我希望将其查询到一个表格中,该表格给出每种支付类型的金额总和,并按支付类型分组,如下所示:

Paytype Total
Cash    245.00
Visa    100.00
Check   50.00

让它基于日期范围,所以说我希望它基于2013-12-15到2014-5-01。 目前,我可以通过

获得特定薪资类型的单笔金额
select paytype, (SUM(IF(paytype = 'Cash', Amount, 0)) from Transact group by paytype.

请帮助执行正确的查询!非常感谢!

2 个答案:

答案 0 :(得分:1)

您可以使用基本Group BySum查询执行此操作:

Select  Paytype, Sum(Amount) As Total
From    Transact
Where   Date Between '2013-12-15' And '2014-05-01'
Group by Paytype

答案 1 :(得分:1)

您希望在日期间隔中将每种付款类型的金额相加。这很简单地转换为sql(我认为):

Select Paytype, sum(Amount) as Total
From Transact
Where (`Date` between ?start_date
  And  ?end_date)
Group by Paytype

只需将?start_date?end_date替换为您要检查的范围。