【问题标题】:Show transaction for year显示年度交易
【发布时间】:2018-09-26 05:07:39
【问题描述】:

如果汇总的总数为“500”,我希望结果显示“总计”而不是当前显示“空”的位置

另外,我不确定如何添加 WHERE 子句来仅查看 2018 年处理的交易?

有什么想法吗?谢谢

select date_format(TRANSACTION_DATE, '%M') AS MONTH, 
SUM(SALES_AMOUNT) TOTAL
FROM SALES
GROUP BY DATE_FORMAT(TRANSACTION_DATE, '%M') WITH ROLLUP

January 160.00
June    100.00
May     240.00
Null    500.00

【问题讨论】:

  • 您可以使用coalesce()ifnull() 函数来替换空值
  • 而不是关闭date_format(TRANSACTION_DATE, '%M'),您也可以使用MONTH(TRANSACTION_DATE).. 对于WHERE,您可以使用WHERE YEAR(TRANSACTION_DATE) = 2018

标签: mysql sql rollup


【解决方案1】:

这对我有用:

http://www.sqlfiddle.com/#!18/8647e/4

SELECT 
isnull(datename(month, [Date1]), 'Total'),
SUM([Amount])
FROM Table1
GROUP BY datename(month , [Date1]) WITH ROLLUP

结果:

|         |     |
|---------|-----|
| January | 160 |
|    June | 100 |
|     May | 240 |
|   Total | 500 |

【讨论】:

  • 由于某种原因将 Null 返回到“May”?
  • 一月 160.00 六月 100.00 五月 240.00 五月 500.00
猜你喜欢
  • 2018-05-10
  • 1970-01-01
  • 2015-12-21
  • 2023-03-23
  • 2014-05-21
  • 1970-01-01
  • 2021-04-03
  • 2023-03-30
  • 1970-01-01
相关资源
最近更新 更多