【发布时间】:2014-03-05 10:14:25
【问题描述】:
我有两个表用于在我的站点中保存用户查询。一个用于工单,另一个用于工单回复。我想要的是计算总票数 + 总回复数 + 不同状态的总票数。我可以成功计算总票数和总回复数,但我在计算票证状态时遇到问题。
问题: 当我使用以下查询时,它显示了新的和打开的票证总数,但由于查询是一个 JOIN 查询,它显示了所有行的总状态(这意味着它显示了所有回复而不是所有票证的状态总和)。
SELECT COUNT(tr.ticketid) totalReplies,
COUNT(DISTINCT(t.ticketid)) totalTickets,
SUM(CASE WHEN t.status='Open' THEN 1 END) totalOpen,
SUM(CASE WHEN t.status='Close' THEN 1 END) totalClose
FROM `tbl_ticket` t
INNER JOIN `tbl_ticket_reply` tr ON tr.ticketid = t.ticketid
希望我能说清楚。我将用一个例子来解释它。假设我们总共有以下记录:
total tickets: 10
total replies: 20
比方说,一半的票是打开的,一半是关闭的。然后它应该显示 5 打开, 5 关闭。但相反,它给出了 10 个打开和 10 个关闭。
更新: 我不想按状态对我的查询进行分组,因为它会在状态之间分配我的总票数。
有什么帮助吗?谢谢
【问题讨论】: