2017-05-23 5 views
0

次の問合せで結果を繰り返さないようにするにはどうすればよいですか?両方の副問合せによるMYSQLグループの繰り返し行なし

例のテーブル構造:

ord_order_number | ord_date | ord_status | ord_from 
---------------------------------------------------- 
      1  | 2017-01-01 | 2  | Admin Side 
      2  | 2017-02-02 | 3  | Client Side 

ここ5に至るまでのすべての月からの注文(現在の月、月)

があるでしょうが、クエリです:

SELECT t1.*, t2.* 
    from 
     (select count(ord_order_number) as admin, ord_date 
     FROM `order_summary` 
     where ord_date > '2017-01-01 00:00:00' 
     and ord_from = 'Admin Side' 
     group by month(ord_date) 
     ) t1, 
     (select count(ord_order_number) as client, ord_date 
     FROM `order_summary` 
     where ord_date > '2017-01-01 00:00:00' 
     and ord_from = 'Client Side' 
     group by month(ord_date) 
     )t2 

この意志現在25の4列の行を生成しています。

T1エイリアスは、2017-01から2017-05までの各月のカウントを生成します。その後、2017-01などで始まる行が繰り返されます。

t2エイリアスは毎月5回繰り返されます。

毎月1回しか表示されません。現在のクエリの

例の結果:

(correct)admin | ord_date | client | ord_date (this column repeats each date 5 times) 
     -------------------------------------------- 
      22 | 2017-01-01 | 77 | 2017-01-01 
      32 | 2017-02-01 | 77 | 2017-01-01 
      43 | 2017-03-01 | 77 | 2017-01-01 

はここで予想される結果を選択して、再びord_dateを追加することができます

admin | ord_date | client | ord_date 
-------------------------------------------- 
    22 | 2017-01-01 | 77 | 2017-01-01 
    32 | 2017-02-01 | 21 | 2017-02-01 
    43 | 2017-03-01 | 100 | 2017-03-01 
+0

あなたが '月(ord_date)にグループ化されてきたときに記録された効果的ランダムord_dateを探している場合を除き、' ord_date'を選択すると、 '通常の意味の全体の多くをしないことを言及する価値がありますその月以内に – Uueerdo

答えて

2

移動CASE.Youと選択中の条件の一例ですが、それは私には奇妙に見えます。

SELECT count(CASE WHEN ord_from = 'Admin Side' THEN ord_order_number END) as admin 
    , count(CASE WHEN ord_from = 'Client Side' THEN ord_order_number END) as client 
    , ord_date 
FROM `order_summary` 
WHERE ord_date > '2017-01-01 00:00:00' 
GROUP BY month(ord_date) 
+2

勝利のための条件付き集計!サブクエリを排除してクエリを簡略化し、望ましい結果を得ます。ヌルのカウントはカウントをインクリメントしないので、これが機能することに注意してください。 ord_fromが一致しない場合は値が返されないため、nullはカウントされません! – xQbert

+1

グループの前に 'と'を削除するだけでいいです – Kisaragi

関連する問題