SQL How to get multiple values into one column (MS SQL)
The FOR XML PATH solution for creating csv from rows tend to be the most common for 2016 and lower.

WITH cte
     AS (SELECT one.Batchnumber,
                one.Weight,
                two.Description
         FROM #table1 AS one
         LEFT OUTER JOIN #table2 AS two
              ON one.ErrorID = two.ErrorID)

SELECT Batchnumber,  SUM(Weight),
            STUFF((SELECT ',' + inr.Description
         FROM cte AS inr
         WHERE outr.Batchnumber = inr.Batchnumber FOR XML PATH(''), TYPE
     ).value('.', 'VARCHAR(MAX)'), 1, 1, SPACE(0))
FROM cte AS outr
GROUP BY Batchnumber;


In 2017 there is the STRING_AGG function which makes this easier.

WITH cte
     AS (SELECT one.Batchnumber,
                one.Weight,
                two.Description
         FROM #table1 AS one
         LEFT OUTER JOIN #table2 AS two
              ON one.ErrorID = two.ErrorID)

SELECT  Batchnumber,SUM(Weight),STRING_AGG(Description,',')
FROM    cte
group by Batchnumber;