2016-06-01 4 views
2

現在、どのように多くのエントリが作成されたのかを調べるために、私はまとめています。これらのエントリを特定のカウント数(< 4)以下に制限する方法を調べようとしています。Mysqlのカウントによる制限

SELECT 
    t.id `Ticket ID`, 
    a.asset `Asset`, 
    sol.solution `Solution reported`, 
    COUNT(tjou.id) `Journal entry count` 

FROM tickets t 
    JOIN assets a ON t.asset_id = a.id 
    LEFT JOIN ticket_solutions tsol ON tsol.ticket_id = t.id 
    JOIN solutions sol ON tsol.solution_id = sol.id 
    JOIN ticket_journal tjou ON tjou.ticket_id = t.id 
WHERE t.deleted IS FALSE 
AND tjou.system_msg IS FALSE 
AND DATE(t.close_dt) >= DATE_SUB(NOW(),INTERVAL 1 MONTH) 
AND DATE(a.labor_w_end_dt) > CURDATE() 
AND sol.solution != 'Communications Issue' 
GROUP BY t.id 
ORDER BY `Journal entry count` ASC 
+0

名前にスペースを含むエイリアスを使用することは危険です。彼らは私が考えることができる任意の言語で有効な変数名になりません – RiggsFolly

答えて

1

GROUP BY後にこの

HAVING COUNT(tjou.id) < 4 

を追加し、ORDER

Reference.

+0

ありがとう、それをした! –

0

前に(でオーダーする前に)持ってみてくださいしよう

SELECT 
    t.id `Ticket ID`, 
    a.asset `Asset`, 
    sol.solution `Solution reported`, 
    COUNT(tjou.id) `Journal entry count` 

FROM tickets t 
    JOIN assets a ON t.asset_id = a.id 
    LEFT JOIN ticket_solutions tsol ON tsol.ticket_id = t.id 
    JOIN solutions sol ON tsol.solution_id = sol.id 
    JOIN ticket_journal tjou ON tjou.ticket_id = t.id 
WHERE t.deleted IS FALSE 
AND tjou.system_msg IS FALSE 
AND DATE(t.close_dt) >= DATE_SUB(NOW(),INTERVAL 1 MONTH) 
AND DATE(a.labor_w_end_dt) > CURDATE() 
AND sol.solution != 'Communications Issue' 
GROUP BY t.id 
HAVING COUNT(tjou.id) < 4 
ORDER BY `Journal entry count` ASC