php - 显示基于另一行值的金额总和

标签 php mysql sql database

我有 SQL 表:

id_details
year-month
type (only have 2 values , income and outcome)
amount

表格有这样的行:

(year-month)      (type)     (amount)
 November-2012    income      50000
 November-2012    income      30000
 December-2012    income      20000
 November-2012    outcome     10000
 December-2012    outcome     50000
 December-2012    income      10000

我想要的是,显示一个结果如下的查询:

 (year-month)    (sum income)     (sum-outcome)   (sub-total balance)
 November-2012    80000             10000          70000
 December-2012    30000             50000          -20000 

最后

  total-balance = 50000

我该怎么做? 或者你能推荐我更好的表格设计吗?

最佳答案

SELECT `year-month`,
       SUM(CASE WHEN type = 'income' THEN amount ELSE 0 END) `sum-income`,
       SUM(CASE WHEN type = 'outcome' THEN amount  ELSE 0 END) `sum-outcome`,
       SUM(amount) `sum-total balance`
FROM <JOINS>
GROUP BY `year-month`

关于php - 显示基于另一行值的金额总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13567694/

相关文章:

php - 如何防止用户通过编写 URL 直接访问我的 html 页面?

mysql - 如何在某些表上使用左连接编写正确的 sql?

sql - 运行此 sql 命令时 sql server 上发生了什么

php - 如何让drawtext过滤器在从右向左滚动时开始从中心滚动文本

php - 在导航栏中有图像

php - 如何调试 PHP/HTML/MySQL 中的无效字符?

mysql - 更改 sql Developer 中的连接 url

MySQL 错误 1064 (42000) 脚本插入

mysql - 仅选择与列表列值匹配的一行

mysql - JOIN引起的重复