【问题标题】:Show total expense in each category for last SIX months in MYSQL在 MYSQL 中显示过去六个月每个类别的总费用
【发布时间】:2017-08-26 07:49:33
【问题描述】:

请在标记为重复之前阅读此内容

这是产品表的结构:

此表有600多行记录。

我想要的是它显示这样的东西

| Category | Price | Month | Year  |
|  Bills   | 12389 |  08   | 2017  |
|  Food    | 10589 |  08   | 2017  |
|  ...     | ..... |  ..   | ....  |
|  Bills   | 18989 |  07   | 2017  |
|  Food    | 20589 |  07   | 2017  |
|  ...     | ..... |  ..   | ....  |
|  Bills   | 12784 |  06   | 2017  |
|  Food    | 23589 |  06   | 2017  |
|  ...     | ..... |  ..   | ....  |

我做了什么?

SELECT category AS 'Category', SUM(total_PRICE) AS 'Total Amount' 
FROM `products`
WHERE month(DATE)=(SELECT MONTH(CURDATE())) AND year(DATE)=(SELECT YEAR(CURDATE())) GROUP BY category  ORDER BY `Total Amount`  DESC

本月返回记录“分类查看

我也试过这个

SELECT *
FROM products
WHERE date_format(date,'%Y-%m') < date_format(now(),'%Y-%m') and
      date_format(date,'%Y-%m') >= date_format(now() - interval 6 month,'%Y-%m')

这将返回过去六个月的所有记录

如果无法编写这种类型的查询,那么请帮我用 PHP 编写一个程序,将这种类型的数据打印到屏幕上

【问题讨论】:

    标签: php mysql sql


    【解决方案1】:

    你似乎想要:

    SELECT category, date_format(date,'%Y-%m') as yyyymm, SUM(total_PRICE)
    FROM products
    WHERE date_format(date,'%Y-%m') < date_format(now(),'%Y-%m') and
          date_format(date,'%Y-%m') >= date_format(now() - interval 6 month,'%Y-%m')
    GROUP BY category, date_format(date,'%Y-%m')
    ORDER BY category, yyyymm DESC;
    

    【讨论】:

    • 它真的帮助了先生。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 2014-12-10
    • 1970-01-01
    • 2014-09-29
    • 2021-07-04
    相关资源
    最近更新 更多