在SQL中将2行合并为1行

时间:2018-08-07 10:42:39

标签: c# sql tsql sql-server-2012

我正在尝试在SQL Server中合并1中的2行。

这就是我所拥有的:

+---------------+-------+--------+
| Part Number   | Code  | value  |
+---------------+-------+--------+
|     1         |  00   |   12   |
|     1         |  01   |   21   |
+---------------+-------+--------+

这就是我想要的:

+---------------+-------+--------+
| Part Number   | Code  | value  |
+---------------+-------+--------+
|       1       |  00   |   33   |

我希望仅保留代码00。

4 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

SELECT [Part Number], MIN(Code), SUM(value)
FROM myTable
GROUP BY [Part Number]

答案 1 :(得分:0)

使用GROUP BY子句

您可以尝试

SELECT PartNumber, MIN(Code), SUM(value) FROM parts GROUP BY PartNumber

答案 2 :(得分:0)

@EmanueleVerderame,下面是此模型,以向您展示如何防止错误。 似乎某些列(“代码”或“值”)具有NULL /空白值。

DECLARE @parts TABLE (PartNumber INT, Code Char(2), Value INT)
INSERT INTO @parts
SELECT 1,'00', 12 UNION ALL
SELECT 1, '01', 21 UNION ALL
SELECT 2, NULL, 5
--+---------------+-------+--------+
--| Part Number   | Code  | value  |
--+---------------+-------+--------+
--|     1         |  00   |   12   |
--|     1         |  01   |   21   |
--|     2         |       |   5    |
--+---------------+-------+--------+

SELECT PartNumber, MIN(isnull(Code, '00') ), SUM(isnull(value, 0))  FROM 
@parts 
GROUP BY PartNumber

答案 3 :(得分:0)

如果只想显示第一个结果,则应使用where rownum = 1