Объединить несколько строк в столбце SQL SERVER без временной таблицы - PullRequest
0 голосов
/ 11 февраля 2020

У меня следующий набор результатов, который я создаю по запросу.

ID | Name | CRAmount | DRAmount
1  | ABC  | 50000    | NULL
1  | ABC  | NULL     | 10000
1  | ABC  | 5000     | NULL
1  | ABC  | 6000     | NULL
1  | ABC  | NULL     | 7000

Я хочу получить результат, подобный

ID | Name | CRAmount | DRAmount
1  | ABC  | 61000    | 17000

Я знаю, что могу сделать это, используя временную таблицу, но я хочу простой способ сделать. Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 11 февраля 2020

Вы, кажется, хотите простое агрегирование:

select id, name, sum(cramount) cramount, sum(dramount) dramount
from mytable
group by id, name
0 голосов
/ 11 февраля 2020
SELECT ID , [Name] , SUM(ISNULL(CRAmount,0))CRAmount,SUM(ISNULL(DRAmount,0))DRAmount FROM #TEMP
GROUP BY ID , [Name]
0 голосов
/ 11 февраля 2020

Попробуйте это

SELECT ID, Name, SUM(CRAmount) as CRAmount, SUM(DRAmount) as DRAmount
FROM TableName 
GROUP BY ID, Name;
GO  
...