2017-02-27 9 views
1

データを取得するための独立したクエリを書きました。今私は1つのクエリですべてのクエリを結合したい。参加方法すべてのクエリ以来1つのクエリで6つの独立したクエリを結合する方法。テーブルは1つではあるが条件が異なる

1. 
select Name, COUNT(name) as Total_Complaint, 
    count(Solved) as SC, COUNT(Pending)as PC 
from helpdesk 
WHERE Solved="yes" OR Pending="yes" 
group by name; 

2. 
SELECT name,count(name)as Total_Compalint,count(feedback), 
    count(feedback)/count(name)*100 as feed_Percent 
from helpdesk 
group by NAME; 

3. 
select name, sum(feedback)/(count(feedback)*5)*5 as AVG_Feedback 
from helpdesk 
group by name; 

4. 
select Name, COUNT(name) as Total_Complaint, 
    count(Solved) as SC, COUNT(Pending)as PC 
from helpdesk 
group by name; 

5. 
SELECT name, 
    sum(TIMESTAMPDIFF(MINUTE,Request_Time, Close_Time))as Working_Time, 
    540-sum(TIMESTAMPDIFF(MINUTE,Request_Time, Close_Time))as VC 
from helpdesk 
group by name ; 

6. 
select name, 
    concat(count(case when etr_meet = 'yes' then 1 else null end) * 100/count(1), '%') 
from `helpdesk` 
group by name; 
+0

あなたはそれらを組み合わせません。どうしてですか? –

+0

1つのテーブルからデータをフェッチしたいが条件は異なる –

+0

しかし、私の条件はすべての結果を1つのテーブルに表示することです –

答えて

3

は同じパターンである - select ... from helpdesk group by nameそれは単一のクエリにマージするために多くの意味になります。

第1のクエリ(WHERE Solved="yes" OR Pending="yes")のWHERE句は、ステートメントを使用してCOUNTに移動しました。

select  Name 
      ,COUNT(case when Solved="yes" OR Pending="yes" then name end) as Total_Complaint 
      ,count(Solved)             as SC 
      ,COUNT(Pending)             as PC     
      ,count(name)              as Total_Compalint 
      ,count(feedback) 
      ,count(feedback)/count(name)*100         as feed_Percent 
      ,sum(feedback)/(count(feedback)*5)*5        as AVG_Feedback 
      ,sum(TIMESTAMPDIFF(MINUTE,Request_Time, Close_Time))    as Working_Time 
      ,540-sum(TIMESTAMPDIFF(MINUTE,Request_Time, Close_Time))   as VC   
      ,concat(count(case when etr_meet = 'yes' then 1 else null end) * 100/count(1), '%') 

from  helpdesk 

group by name 
; 
関連する問題