2016-06-15 7 views
1

IDのリストを後で問題を説明する文字列にします。私は自分のIDでこれらをフィルタリングし、あなたの説明はここでは100%では明らかではないので、プライマリID番号リストから値に基づいて文字列を返そうとしています

select 
sol.solution `Solution`, 
count(sol.id) `Solution Count`, 
case sol.id when 8,9,10,11,12,13,14,15,16,25,29,33,37,40,41,42,48,51 then 'Hardware' 
else 'Software' end `HW/SW` 
from tickets t 
    join ticket_solutions tsol 
    on tsol.ticket_id =t.id 
    join solutions sol 
    on tsol.solution_id = sol.id 
+0

'SELECT'はあなたの' FROM'部分ですか? – Alex

+1

あなたが良い質問を説明していません.. – scaisEdge

+0

3つの結合テーブルから来ている。 –

答えて

0

に基づいて文字列を表示したい

はちょうど私の推測です:

SELECT 
sol.solution `Solution`, 
COUNT(t.id) `Solution Count`, 
IF(sol.id IN (8,9,10,11,12,13,14,15,16,25,29,33,37,40,41,42,48,51),'Hardware','Software') `HW_SW` 
FROM tickets t 
JOIN ticket_solutions tsol 
    ON tsol.ticket_id =t.id 
JOIN solutions sol 
    ON tsol.solution_id = sol.id 
GROUP BY sol.id 
+0

ありがとう!どちらも素晴らしい! –

0

短縮形の式caseは、単一の値だけの値のリストを取りません。しかし、in演算子を持つ長い(条件ベースの)フォームを使用することができます:

CASE WHEN sol.id IN (8,9,10,11,12,13,14,15,16,25,29,33,37,40,41,42,48,51) 
    THEN 'Hardware' 
    ELSE 'Software' 
END AS `HW/SW` 
関連する問題