根据group by date字段获取数据

wd2eg0qa  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(284)

这是我的table

有字段类型,即1表示收入,2表示支出
现在的需求是例如在表中有两个事务在 2-10-2018 所以我需要如下数据

Expected Output

id   created_date   total_amount
1       1-10-18     10
2       2-10-18     20(It calculates all only income transaction made on 2nd date)
3       3-10-18     10
and so on...

它将返回一个新字段,其中只包含在perticul day进行的incom事务
我试过的是

SELECT * FROM `transaction`WHERE type = 1 ORDER BY created_date ASC
 UNION
 SELECT()

//But it wont work
SELECT created_date,amount,status FROM
    (
        SELECT COUNT(amount) AS totalTrans FROM transaction WHERE created_date = created_date
    ) x
 transaction

您也可以在这里看到模式http://sqlfiddle.com/#!9/6983b9号

shyt4zoc

shyt4zoc1#

你可以 Count() 使用条件函数的支出事务处理总数 If() ,在一组 created_date .
同样,你可以 Sum() 使用的费用金额 If() ,在 created_date .
请尝试以下操作:

SELECT 
  `created_date`, 
  SUM(IF (`type` = 2, `amount`, 0)) AS total_expense_amount, 
  COUNT(IF (`type` = 2, `id`, NULL)) AS expense_count  
FROM 
  `transaction` 
GROUP BY `created_date` 
ORDER BY `created_date` ASC
i5desfxk

i5desfxk2#

你只是想要一个 WHERE 条款?

SELECT t.created_date, SUM(amount) as total_amount
FROM transaction t
WHERE type = 2
GROUP BY t.created_date
ORDER BY created_date ASC ;

相关问题