SQL: как мне объединить похожие строки значений в одну, не влияя на остальные

#sql #join #merge #ssms

#sql #Присоединиться #слияние #ssms

Вопрос:

Есть ли способ объединить похожие значения в одном столбце и не повлиять на остальные, например: 1

Я также хочу суммировать сумму по компании и идентификатору.

Комментарии:

1. вы не можете сделать это так, на уровне sql. вам нужно сделать это на уровне представления. На уровне SQL название компании будет повторяться для строк

2. тогда как мне суммировать? Потому что, когда я набираю SELECT [Company], [ID], SUM([Сумма]) КАК [AMOUNT] ИЗ #temptable, он показывает мне эту ошибку: недопустимый в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении GROUP BY .

3. Для агрегирования вам необходимо иметь предложение GROUP BY. Смотрите мой ответ

Ответ №1:

Вы не можете получить данные, которые хотите отобразить. Вы будете повторять название компании. Если вы хотите распределять данные таким образом, чтобы название компании не повторялось для последующих строк, вам необходимо использовать EXCEL или какой-либо другой инструмент уровня представления.

 SELECT Company, ID, SUM(Amount)
FROM Table1
GROUP BY Company,ID
  
 
 --------- ----- -------- 
| Company | ID  | Amount |
 --------- ----- -------- 
| ABC     | 001 |      3 |
| ABC     | 002 |      3 |
| DEF     | 002 |     10 |
| DEF     | 003 |      5 |
 --------- ----- --------