Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 将记录合并为一个?_Sql Server - Fatal编程技术网

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)))