2

この質問の言い方がよくわかりませんでしたが、質問を説明します... mysqlデータベースに次のようなテーブルがあります

cust_name | order_date | sales_price
----------+------------+------------
john      | 2013-02-11 | 100
matt      | 2012-02-29 | 50
sam       | 2013-03-13 | 25
tony      | 2013-02-12 | 105

DATE_FORMAT(order_date, '%M') は日付の月を戻すことができ、DATE_FORMAT(order_date, '%Y') は年に対して同じことを行うことがわかりました。

私がやりたいことは、データベースにクエリを実行して、次のようなものを戻すことです

year  | month | tot_price
------+------------------
2013  | 02    | 205
2013  | 03    | 25
2012  | 02    | 50

2013年に値を戻すだけかもしれません。これに似た試みがいくつかありました。

SET @july := 0;
Select customer,
    case DATE_FORMAT(order_date, '%M')
    when 'july' then @july := @july + 1
end as amount
from mytable

しかし、変数値を出力する方法がわからないことに気付いたので、どこにも行きませんでした...では、そのようなクエリを作成するにはどうすればよいですか? 前もって感謝します!

4

1 に答える 1

3
Select year(order_date) as order_year,
       month(order_date) as order_month,
       sum(sales_price) as tot_price,
       group_concat(cust_name) as customers_in_month
from mytable
group by order_year, order_month

SQLFiddle デモ

于 2013-07-09T14:20:53.523 に答える