Пожалуйста, попробуйте это.
select t1.id, coalesce(t1.data1,t2.data1)
from Table t1 join (select id, sum(amount) from Table group by id) t2
on t1.id = t2.id
здесь, главная проблема заключается только в том, как получить ненулевое значение среди нескольких столбцов.Таким образом, мы можем достичь этого с помощью функции объединения .
Что делает функция объединения?
Функция COALESCE () возвращает первое ненулевое значениев списке.
Пример:
ВЫБЕРИТЕ COALESCE (NULL, NULL, NULL, 'W3Schools.com', NULL, 'Example.com');
После выполнения вышеуказанного SQL-запроса он возвращает.
W3Schools.com
, которое вначале не является нулевым значением.
https://www.w3schools.com/sql/func_sqlserver_coalesce.asp