Sql server 将记录合并为一个?
结果Sql server 将记录合并为一个?,sql-server,Sql Server,结果 CATEGORY DESC AMOUNT 50200105 Sub Contractor - SLW 1000 50200205 Sub Contractor - Meal Operator - SLW 0 50200305 Sub Contractor - Garbage - SLW
CATEGORY DESC AMOUNT
50200105 Sub Contractor - SLW 1000
50200205 Sub Contractor - Meal Operator - SLW 0
50200305 Sub Contractor - Garbage - SLW 2000
让我们用这么多的let以某种方式实现您的输出;) let-您正在尝试使用列描述中值的最后一部分按结果分组 Let-您可以在组中保留类别列中的最小值 现在-尝试下面的查询。只是想帮你:)
请在文本中包含预期结果,并显示您当前的尝试。还包括
组合过程中的逻辑/说明如何在有两个其他类别的情况下仅获得50200105?@mkRabbani我猜这里与01
,02
,存在隐藏的父子关系,03
OP没有向我们解释的类别代码部分。如何将3个类别相加为1?@FringgaAdamSandika听到这似乎很有帮助,也很高兴。请别忘了投赞成票:)
CATEGORY DESC AMOUNT
50200105 Sub Contractor - SLW 3000
SELECT MIN(CATEGORY) CATEGORY,
'Sub Contractor - '+ TRIM(REVERSE(LEFT(REVERSE(DESCRIPTION), CHARINDEX('-',REVERSE(DESCRIPTION),0)-1))) DESCRIPTION,
SUM(AMOUNT) AMOUNT
FROM your_table
GROUP BY TRIM(REVERSE(LEFT(REVERSE(DESCRIPTION), CHARINDEX('-',REVERSE(DESCRIPTION),0)-1)))