Sql server 将两条记录合并为一条
我看过这里,有很多问题涉及到将两个记录合并成一个,但我认为我的问题是独一无二的。 我有一个软件,它使用sql查询为我们的票务软件创建桌面小工具。我想跟踪每个技术人员有多少帮助台票据,我有相应的工作代码。它生成了一个棒形图,效果非常好,但是,有时多个技术人员或一个技术人员和一个经理被分配到一张工单,而我无法提取该数据。代码是:Sql server 将两条记录合并为一条,sql-server,Sql Server,我看过这里,有很多问题涉及到将两个记录合并成一个,但我认为我的问题是独一无二的。 我有一个软件,它使用sql查询为我们的票务软件创建桌面小工具。我想跟踪每个技术人员有多少帮助台票据,我有相应的工作代码。它生成了一个棒形图,效果非常好,但是,有时多个技术人员或一个技术人员和一个经理被分配到一张工单,而我无法提取该数据。代码是: SELECT TECHNICIAN, COUNT(TECHNICIAN) AS TICKETS FROM TABLE (内部联接有一点额外的复杂性,因此我可以通过将员工I
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
如果上面的结果集进入这个小工具,它会为每条记录生成一个条。所以会有一个“鲍勃”酒吧和一个“鲍勃,哈里”酒吧。此外,我知道我只需要技术人员,所以我不需要它来制作单独的“harry”记录,只要将两个“bob”加在一起就行了。此外,我对数据库具有只读访问权限,因此无法创建新表来保存数据
谢谢大家! 假设
技师列为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;
假设technology
列为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;
您的表没有很好地规范化。在另一张表中,Bob和Harry在罚单上应该有两行——假设Harry被排除在经理之外,您如何区分“Bob,Harry”(只给Bob一行)和“Bob,Joe一行”(一行给Bob,一行给Joe),如果我有数据库的写权限,我会规范化data@CodeByMoonlight,实在没有好的解决办法。有时经理和技术人员赌一张票,有时赌两名技术人员。我想我想让第一个技术人员得到“点”。你的表没有很好地规范化。在另一张表中,Bob和Harry在罚单上应该有两行——假设Harry被排除在经理之外,您如何区分“Bob,Harry”(只给Bob一行)和“Bob,Joe一行”(一行给Bob,一行给Joe),如果我有数据库的写权限,我会规范化data@CodeByMoonlight,实在没有好的解决办法。有时经理和技术人员赌一张票,有时赌两名技术人员。我想我希望第一个被指派的技术人员能得到“要点”。太好了!现在唯一的问题是:我应该把那些使经理无效的州放在哪里?示例:还有技师“哈里”,太棒了!现在唯一的问题是:我应该把那些使经理无效的州放在哪里?示例:和技师“HARRY”