2013-06-17 1 views
5

の場合、私はかなりの列は次のようになり、テーブル「注文」があります。範囲でMySQLのクエリの場合に、通貨

| order_id | shop_id | order_total | currency | created_at | 

今私は、クエリを作りたい、のように見えるテーブルを返します。この:間隔は、日付の間隔で

| interval | currency | sum | 

、通貨は通貨と合計がその通貨の間隔ですべての注文の合計で、です。 SAの例は次のようになります。

| 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  | 

私はすでに通貨をdiregardsクエリを持っていますが、私は任意のアイデア...それは考慮に通貨を取るようにする方法を知りませんか?

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 

/モルテン

答えて

10

が句

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, 
     currency, 
     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, 
      currency 
+0

さてさて、働くことによってあなたの選択およびグループに通貨を追加しますが、それは外のすべての注文をカウントされるため、今私は、間隔としてnullを持つ2つの行を取得間隔を設定し、その間隔をnullに設定します。クエリから除外する方法はありますか? –

+0

where句にcreated_atの範囲が正しく設定されていることを確認してください。2012-08-12から2012-11-17ですが、クエリでは2012-08-12から2012-10-14の範囲しか検索されません –

関連する問題