【发布时间】:2014-12-27 03:34:06
【问题描述】:
工单有一个 ID TicketNbr,时间条目有一个 ID Time_RecID。工单有 0 个、1 个或可能更多与 TicketNbr 关联的时间条目。
我正在尝试生成这样的列表:
Time Entries | Tickets
10 | #
9 | #
8 | #
7 | #
6 | #
5 | #
4 | #
3 | #
2 | #
1 | #
其中#是票数。
数据来自两个表:v_rpt_Service (TicketNbr) 和 v_rpt_Time (Time_RecID)。我的所有相关数据都是使用以下 SQL 发现的:
SELECT
s.TicketNbr, t.Time_RecID
FROM
v_rpt_Service s
LEFT JOIN v_rpt_time t on s.TicketNbr = t.SR_Service_RecID
我苦苦挣扎的是聚合。理想情况下,我正在寻找的是:
SELECT
COUNT(T.Time_recID) as Time_Entries, COUNT(DISTINCT(s.TicketNbr)) as Tickets
FROM
v_rpt_Service s
LEFT JOIN v_rpt_time t on s.TicketNbr = t.SR_Service_RecID
GROUP BY
COUNT(t.Time_recID)
导致此错误:
消息 144,级别 15,状态 1,第 8 行 不能在用于 GROUP BY 子句的 group by 列表的表达式中使用聚合或子查询。
如何重构初始查询以提供与上面列表类似的输出?
【问题讨论】: