列がほとんど次のように見える「順序」テーブルがあります。
| order_id | shop_id | order_total | currency | created_at |
ここで、次のようなテーブルを返すクエリを作成したいと思います。
| interval | currency | sum |
interval は日付の間隔、currency は通貨、sum はその間隔内のその通貨のすべての注文の合計です。たとえば、次のようになります。
| 2012-08-12-2012-09-12 | EUR | 540922 |
| 2012-08-12-2012-09-12 | DKK | 43215 |
| 2012-09-12-2012-10-12 | EUR | 123643 |
| 2012-09-12-2012-10-12 | DKK | 0 |
私はすでに通貨を無視するクエリを持っていますが、通貨を考慮に入れる方法がわかりません..何かアイデアはありますか?
Heresは、私が現在使用しているクエリの例です。もちろん、実際のクエリはコードによって生成されます。これは単なる例です。
SELECT CASE
WHEN created_at BETWEEN '2012-08-12' AND '2012-09-12' THEN '2012-08-12-2012-09-12'
WHEN created_at BETWEEN '2012-09-12' AND '2012-10-12' THEN '2012-09-12-2012-10-12'
WHEN created_at BETWEEN '2012-10-12' AND '2012-10-14' THEN '2012-10-12-2012-10-14'
end AS intrvl,
Sum(order_total)
FROM `order` o
WHERE shop_id = 4
AND created_at BETWEEN '2012-08-12' AND '2012-11-17'
GROUP BY CASE
WHEN created_at BETWEEN '2012-08-12' AND '2012-09-12' THEN '2012-08-12-2012-09-12'
WHEN created_at BETWEEN '2012-09-12' AND '2012-10-12' THEN '2012-09-12-2012-10-12'
WHEN created_at BETWEEN '2012-10-12' AND '2012-10-14' THEN '2012-10-12-2012-10-14'
end
/モルテン