将两个记录合并为一个

时间:2012-07-19 16:06:19

标签: sql-server

我在这里看过,有很多问题涉及将两个记录合并为一个,但我认为我的是一个独特的问题。 我有一个软件,它使用SQL查询为我们的票务软件创建桌面小工具。我想跟踪每个技术人员有多少帮助台票,我有相应的工作代码。它会生成一个效果很好的条形图,但是,有时会将多个技术人员或技术人员和经理分配给故障单,而我无法提取该数据。代码是:

SELECT TECHNICIAN, COUNT(TECHNICIAN) AS TICKETS
FROM TABLE

(内部联接有一点额外的复杂性,所以我可以通过将员工的ID与表格的实际名称相关联来获取条形图上的员工姓名,但这是简化版本)

这是我当前的结果集:

TECHNICIAN    TICKETS
Bob           5
Bob, Harry    1
Joe           6
Mark          3
Jeff          2

我想要的结果集是:

TECHNICIAN    TICKETS
Bob           6
Joe           6
Mark          3
Jeff          2

如果上面的结果集进入小工具,它会为每条记录设置一个条形码。所以会有一个'bob'酒吧和'bob,harry'酒吧。另外,我知道我只需要技术人员,因此我不需要它来制作单独的“哈里”记录,只需将两个'bob'加在一起。此外,我对数据库具有只读权限,因此创建新表来保存数据。

谢谢!

1 个答案:

答案 0 :(得分:1)

假设TECHNICIAN列为255个字符:

SELECT Tech, Tickets = COUNT(*)
FROM (
  SELECT 
    Tech = SUBSTRING
           (
              TECHNICIAN, 1, 
              COALESCE(NULLIF(CHARINDEX(',', TECHNICIAN)-1, -1), 255)
           )
  FROM dbo.[TABLE]
) AS x
GROUP BY Tech;