我有一个关于SQL问题的问题.
例如,我有一个像这样的表格表:
| ITEM | VALUE | |A0001 | 3 | |A0001 | 2 | |A0002 | 2 | |A0003 | 7 | |A0003 | 3 | |A0003U | 2 |
如您所见,Item可以包含may值.所以我已经做过的事情就是SUM()
附加到每个项目的所有值,以获得他的价值总和.
我现在要做的是添加附加到Item的值和此Item +'U'
例如,项目A0003U 的值的总和将为
7(项目的第1行)+ 3(项目的第2行)+ 2(项目的第1行+'U') = 12
我知道我可以使用函数RIGHT(Item,1),如果它以'U'结尾将返回'U',但我不知道如何进行所有计算.
编辑:
结果应该是:
| ITEM | VALUE | |A0001 | 5 | |A0002 | 2 | |A0003 | 12 |
这将通过获取ITEM列的前5个字符并按它们分组来汇总值.这将包括结束的项目U
Select Left(ITEM,5),
SUM(VALUE)
From Table
Group by Left(ITEM,5)
Run Code Online (Sandbox Code Playgroud)
编辑
假设它U
始终是最后一个字符并且只出现一次,那么您可以使用此替代方法:
Select Case
When CHARINDEX('U', ITEM) > 0 Then LEFT(ITEM, CHARINDEX('U', ITEM)-1)
Else ITEM
End,
SUM(VALUE)
From Table
Group by Case
When CHARINDEX('U', ITEM) > 0 Then LEFT(ITEM, CHARINDEX('U', ITEM)-1)
Else ITEM
End
Run Code Online (Sandbox Code Playgroud)