我有一个包含我的服务订单的表,对于服务订单,可能会有很多服务问题。我需要一个查询,将结果作为folows:Joe去修复问题并打开服务订单号1.问题没有解决,客户回电。现在鲍勃去解决乔没有解决的问题。出于这个乔停靠了重复服务。乔有1次重复。第二天客户回电:问题未解决,乔出去解决问题。现在鲍勃重复了。鲍勃有1次重复。问题没有得到解决,Joe被派去再次解决问题。乔被停靠了另一个重复。现在乔有2次重复。问题仍未解决,鲍勃出去解决问题。乔被停靠了另一个重复。现在乔有3次重复。问题仍未解决,鲍勃再次被派出来解决问题。鲍勃停下来重复一遍。现在Bob有2次重复,Joe有3次重复用于相同的服务订单。
我需要有关如何编写此类查询的想法。以下是该表的示例:
Serv_Trouble TechID Tech ServOrder
ab51 1 joe 1
ccd2 2 bob 1
abd3 1 joe 1
tto4 1 joe 1
mmo5 2 bob 1
abo6 2 bob 1
lll7 1 joe 1
aco8 1 joe 2
dab9 1 joe 2
tof10 2 bob 2
ab11 2 bob 2
cc12 3 larry 2
ab13 2 bob 2
任何帮助都会非常,我的意思是非常感谢。我搜索了大多数SQL网站的想法,但似乎没有解决这样的问题。
答案 0 :(得分:0)
听起来你可能正在寻找GROUP BY。
SELECT
s.ServOrder
,s.TechID
,s.Tech
,COUNT(*) as repeats
FROM ServOrders s
INNER JOIN (
SELECT
ServOrder
,MAX(Serv_Trouble) AS MaxTrouble
FROM ServOrders
GROUP BY ServOrder
) m ON s.ServOrder = m.ServOrder
AND s.Serv_Trouble < m.MaxTrouble
GROUP BY s.ServOrder, s.TechID, s.Tech
ORDER BY s.ServOrder, s.TechID