0

我的报告有一个问题,即每个用户花费的时间和总票数。

问题在于“TotalTickets”子查询。我必须运行一个子查询,因为为了获得 TotalTickets,我必须从一个单独的数据集中提取:

"FROM tickets JOIN users"

为了得到 ticket.time_spent 我还必须从一个单独的数据集中提取:

"FROM tickets LEFT OUTER JOIN ticket_work ON ticket_work.ticket_id = tickets.id JOIN users"

我可以编写两个完全独立的 SQL 报告,但我想将它们合并到同一个报告中,这就是我采用这种方法的原因。这是我所拥有的:


select users, tickets.time_spent, (select count(tickets.id) FROM tickets 
JOIN users where tickets.assigned_to = users.id) as TotalTickets
FROM tickets LEFT OUTER JOIN ticket_work ON ticket_work.ticket_id = tickets.id 
JOIN users where tickets.assigned_to = users.id

问题在于它不会将 TotalTickets 计数与用户(选择用户)相关联。不过,tickets.time_spent 列工作正常。

任何帮助,将不胜感激!

提前致谢

4

1 回答 1

0

尝试以下方式(完全未经测试):

SELECT users, tickets.time_spent, 
       (SELECT count(tickets.id) FROM tickets 
        WHERE tickets.assigned_to = users.id) as TotalTickets
FROM tickets LEFT OUTER JOIN ticket_work ON ticket_work.ticket_id = tickets.id 
JOIN users where tickets.assigned_to = users.id

如果您实际上的意思是别的,那么请澄清手头的任务和您面临的问题。

于 2013-04-01T17:35:18.200 回答